基本的な構文 PHP タグ PHP はファイルを処理する際、開始タグと終了タグ (<?php?>) を認識し、 PHP コード実行の境界を決めます。タグの外側の内容は PHP パーサーに無視されるため、 PHP を他のあらゆる形式のドキュメント中に埋め込むことができるのです。 正しいトークン分割のため、<?php の後ろに空白文字(空白、タブ、改行)を入れる必要があります。 これがないと文法エラーが発生します。 PHP では、短い形式のechoタグ <?= も使えます。 これは、 <?php echo を短くしたものです。 PHP の開始タグと終了タグ 2. 短い形式の echo タグを使って とすることもできます。 これは と同じ意味になります。 3. ]]> 短縮型のタグ(例 3.)はデフォルトで有効ですが、 &php.ini; 設定ファイルのディレクティブ short_open_tag で無効にすることもできますし、 オプション付きで configure した場合は、 デフォルトで無効にすることも出来ます。 短縮形のタグは無効にすることができるので、 互換性を最大限保つために、通常のタグ (<?php ?> and <?= ?>) を使うことを推奨します。 ファイルが PHP コードで終わる場合は、ファイルの最後の終了タグは省略するのがおすすめです。 終了タグの後に余分な空白や改行があると、予期せぬ挙動を引き起こす場合があるからです。 余分な空白や改行のせいで PHP が出力バッファリングを開始し、その時点の内容を意図せず出力してしまうことになります。 PHP コードのみのファイル HTML からの脱出 PHP のパーサーは、開始タグと終了タグに囲まれていない部分をすべて無視します。 そのおかげで、PHP のファイルにそれ以外のコンテンツを混在させることができるのです。 たとえば PHP を HTML ドキュメントに組み込んで、テンプレートを作ったりすることもできます。 HTML に PHP を埋め込む この部分は PHP から無視され、そのままブラウザには表示されます。

この部分も PHP から無視され、そのままブラウザには表示されます。

]]>
これは期待通りに動作します。なぜなら、PHP インタプリタは ?> 終了タグを見つけると それ以降新たに開始タグを見つけるまでの内容を何でも出力するからです (終了タグの直後の改行は別です。 命令の分離 を参照ください)。 しかし、PHP が条件文の中にいる場合は話が別です。 その場合は、まず条件式の結果を判定してから何をスキップするかを判断します。 次の例を参照ください。 条件文を使った例です。 条件文を使った高度な脱出 条件式が真の場合にこれが表示されます。 それ以外の場合にこちらが表示されます。 ]]> この例では、PHP は条件を満たさないブロックを処理しません。たとえそれが PHP の開始タグと終了タグに囲まれた部分でなくても、条件文にしたがってそこを読み飛ばします。 というのも、PHP のインタプリタは条件を満たさない箇所をブロックごと読み飛ばすからです。 大量のテキストを出力する際に echoprint を用いることを考えると、このように一度 PHP のパースモードを抜けるほうが効率的です。 PHP コードを XML や XHTML に 埋め込む場合には、標準規格に従うために <?php ?> タグを使用する 必要があるでしょう。
命令の分離 C や Perl と同様に、PHP でもステートメントを区切るにはセミコロンが必要と なります。PHP コードブロックの終了タグには自動的にセミコロンが含まれていると 認識されます。 従って PHP コードの最終行にはセミコロンを記述する必要はありません。 ブロックの終了タグは、直後に改行がある場合、それを含んだものになります。 改行を囲んだ終了タグを表示させる例 No newline ]]> &example.outputs; PHP パーサーの開始と終了の例 ファイル終端における PHP ブロックの終了タグはオプション(任意)です。 includerequire を利用する際には、 終了タグを省略する方が無難です。というのは、そうすることでファイルの最後に 予期せぬ空白文字があらわれてしまうことを防げますし、後でレスポンスに ヘッダを付加することも可能となるからです。また、出力バッファリングを 使用しており、include したファイルの生成する部分の最後に余計な空白を つけたくない場合などにも便利です。 コメント PHP は、'C', 'C++' および Unix シェル型(Perl 型)のコメントをサポートします。 例えば、 コメント ]]> "一行"コメントは、改行または PHP コードのブロックの終わり のうちどちらか最初にくる方までです。 つまり、// ... ?> あるいは # ... ?> の後に続く HTML コードは 表示されるということです。?> により PHP モードを終了して HTML モードに戻ると、そこでは // あるいは # は何の影響も 及ぼしません。 一行コメント これは 例です。

上の見出しは 'これは 例です。' となります。 ]]> 'C' 型のコメントは、最初に */ が現れた時点で終了します。 'C' 型のコメントがネストしないように注意する必要があります。 大きなブロックをコメントアウトしようとする際に、この間違いを犯しがちです。 ]]>