PHPには、いくつかコメントアウトの方法があります。ただし、うっかりしているとハマることもあります。
3通りのコメントアウト
PHPには、なぜか2つの行コメントと1つのブロックコメントという、3通りのコメントアウトの方法があります。
<?php
// C++スタイルの1行コメント
# シェルスクリプト系の1行コメント
/*
C言語スタイルのブロックコメント
*/
そして、コメントの中でPHPを閉じるなんて離れ業もできてしまいます。しかも、コメント形式によって挙動が違います。
<?php
// コメント ?>
ここはそのまま出力
<?php
/*
?>
ここはコメントアウトされて出力されない
<?php
*/
php_code();
このようなことが起きるので、(XML宣言や正規表現などで)文字列中に?>
が入ったものをコメントアウトすると、**そこでPHPから抜けてしまいます。**注意が必要です。
<?php
//echo '<?xml version="1.0" encoding="UTF-8" ?>'
ここはPHPの外
コメントに見えるけど
PHPでHTMLを出力する場合、HTMLとしてコメントを入れることももちろん可能です。ただし、HTMLのコメントはPHPにとっては処理すべき文字列の一部でしかありません。以前ウンコード・マニアに投げたネタですが、
<!-- 未定義なのでコメントアウト
<?php undefined_function(); ?>
-->
のように、PHPレベルで動かないコードをHTMLでコメントアウトすると、このコメントの中でPHPのエラーが発生してしまいます。環境によっては全体がコメントであるかのようにシンタックスハイライトがかかるので、特に注意が必要です(ここでは、わざとHTMLだけの指定にして全体がコメントアウトのように見えるよう工夫しています)。
なお、逆にPHPコードでHTMLコメントを生成することも、必要とあれば可能です。