質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.47%

  • PHP

    20854questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

PHPの基本

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 929

datasimblog

score 19

PHPの基本だと思うのですが、
未だにまだ違いがわかりません

以下のようなコードの場合、

====サンプルコード====

php /* The loop */ ?>
<?php $i==0; ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
    <?php if ( $i == 2 ) : ?>
        表示したいコードを入力
    <?php endif; ?>
<?php $i++ ?>
<?php endwhile; ?>

====サンプルコードここまで====

: と、; の違いは何でしょうか?

<?php $i==0; ?> は、;

<?php if ( $i == 2 ) : ?> は、:

<?php $i++ ?> は、何もなし

本で確認しても、
<?php 
; ?>
このようにしか書いていないのです
よろしくお願い致します

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+7

<?php $i==0; ?> は、;

セミコロン(;)は、PHPコードの区切りを示す文字です。
http://php.net/manual/ja/language.basic-syntax.instruction-separation.php

<?php if ( $i == 2 ) : ?> は、:

コロン(:)は、PHPの制御構文(ご質問のコードの場合、if文のこと)における波括弧({ })の別の書き方です。
http://php.net/manual/ja/control-structures.alternative-syntax.php
つまり、

<?php if ( $i == 2 ) : ?> 
    表示したいコードを入力 
<?php endif; ?>


<?php if ( $i == 2 ) { ?> 
    表示したいコードを入力 
<?php }; ?>


と同じ意味になります。

<?php $i++ ?> は、何もなし

これは単に、;を省略しているだけです。
1つ目のリンクに、以下のように説明があります。

PHP コードブロックの終了タグには自動的にセミコロンが含まれていると 認識されます。 従って PHP コードの最終行にはセミコロンを記述する必要はありません。


「終了タグ」とは、?>のことです。
http://php.net/manual/ja/language.basic-syntax.phptags.php

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/12 23:10

    詳しくありがとうございます
    とても勉強になりました
    ありがとうございます

    キャンセル

+1

まず、通常PHPの一つの処理の終わりに;(セミコロン)が必要です。
でないと、Syntax errorが出ると思います。
ifやforeachの終わり(波括弧{}の後)には必要ありません。

test.php(phpファイルの場合)
毎行<?php  ?>で囲まず、処理全体を囲めばOKです。
最後に;(セミコロン)を入れて下さい。

サンプルコードのwhileがどんな処理をしてるのかちょっとわからなかったのですが、

<?php

$i == 0;

while ( $i <= 2 ) { //$iが2を超えるまでループする
   get_template_part( 'content', get_post_format() );

   if ( $i == 2 ) {
      //表示したいコードを入力
      //例えば↓のように
      echo '<h1>テスト</h1>';
   } //ここがifの終わり

   $i++; 
} //ここがwhileの終わり

?>

質問の書き方ですが、先ほど先述した書き方のphpファイルとは違い、HTML内にphpの処理を入れるときによく使います。

test.html
HTMLのソースは普通に書いて、PHPの処理をするところだけを<?php ?>で囲みます。

<html>
<head>
<meta charset="utf-8">
<title>例です</title> 
</head>

<?php $i == 0; ?> 
<?php while ( $i <= 2 ): ?> //ここで、:(コロン)が{の役割を果たす 
<?php get_template_part( 'content', get_post_format() ); ?> 
    <?php if ( $i == 2 ) : ?> //ここも同様に:(コロン)が{
        <h1>テスト</h1> //HTMLファイルなので、HTMLソースはechoなどせずにそのまま書けばいい。
    <?php endif; ?> //ここのendif;(セミコロン)がifの終わりの}の役割
   <?php $i++ ?> 
<?php endwhile; ?> //ここのendwhile;(セミコロン)がwhileの終わりの}の役割

</html>

HTMLはかなり適当ですが、こんな感じです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/12 23:25

    ありがとうございます
    サンプルコードは、
    http://dim5.net/wordpress/loop-posts-insert-adsense.html
    を参考にしました
    PHPファイルと、HTMLファイルでは、記述が違うんですね
    とても勉強になりました
    ありがとうございます

    キャンセル

  • 2016/05/12 23:33

    横から失礼します。

    誤解のないように補足させていただきますが、
    > PHPファイルと、HTMLファイルでは、記述が違う

    というわけではありません。

    HTMLコードを出力するファイルでも、"{ }" 形式の記述は可能です。

    smnsmn様も
    > HTML内にphpの処理を入れるときに【よく使います】。

    と、おっしゃっていますよね?

    キャンセル

  • 2016/05/13 00:04

    そうですね
    > HTML内にphpの処理を入れるときに【よく使います】
    と、ちゃんと書いてあるのに勘違いしていました
    ありがとうございます

    キャンセル

  • 2016/05/13 01:17 編集

    KiyoshiMotoki 様
    ご解説ありがとうございます。m(__)m

    datasimblog 様
    はい、なので、HTML内でも、PHPの処理を
    〜〜〜〜〜〜〜〜〜〜〜〜〜〜
    <title>例えば</title>
    <?php
      $hoge = array('りんご', 'みかん', 'ぶどう');
      foreach ($hoge as $row) {
         echo $row;
      }
    ?>
    〜〜〜〜〜〜〜〜〜〜〜〜〜〜
    こんな風に書くことも出来ます。
    ただ、HTMLとPHPが混同すると読みにくく、処理もわかりにくくなるので、
    なるべくわかりやすく見やすくなるように、よく使う書き方で書いたりしますが、
    できるならphpとhtmlファイルを分ける方がいいですね。

    私も最初はめちゃくちゃに書いてました。(今もですが。)
    意味や書き方がわかれば、自分なりに書けるようになると思います!

    キャンセル

  • 2016/05/13 09:21

    ありがとうございます
    これからも勉強頑張ります

    キャンセル

関連した質問

同じタグがついた質問を見る

  • PHP

    20854questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。