2007年9月19日 水曜日 21:06:10

PHPで1行コメントとPHP括弧の同時利用に関しての注意。

メモ,プログラム,php,WEB開発 [ by Mizugame ]

20070919.jpg
「//」や「#」とPHP括弧を同時に利用した場合の注意です。

これに関しては、問題は少ないと思うけどたまに「あれっ?」てなる(かもしれない)ので書いておきます。

スクリプトを実行した時点で気づくと思うので、特に問題にはならないと思うけど。

というわけで「//」や「#」を利用してコメント内に「< ?php ?>」を書いた場合の参考スクリプトを記述してみます。

<?php
//「//」を記述すると行末までコメントになります。
//”<?php” 以降はPHPスクリプトで “?>”はPHPスクリプトの終了です。
echo “hello!”; //echoでページに出力を行います。
//サンプルは終了です。
?>

すさまじく親切な(というよりうっとおしい)ソースですが、実行するには致命的な問題があります。

PHPファイルを実行

結果をみると予想外にいろいろな言葉が出力されています(^^;

“はPHPスクリプトの終了です。 echo “hello!”; //echoでページに出力を行います。 //サンプルは終了です。 ?>

どういうことかというと、コメント内の文字列は基本的にコメントとして扱われるものの、PHP括弧のみコメントとして扱われないというわけ。

上記サンプルは「//」でコメントアウトしていますが、「#」でコメントアウトした場合も同様の現象が発生します。

コメント内にPHP括弧を書く場合は「/* */」を利用することでコメントとして扱うことが出来ます。

上記の参考スクリプトを正しく処理するように書き直すと

<?php
/*「//」を記述すると行末までコメントになります。
  ”<?php” 以降はPHPスクリプトで ”?>”はPHPスクリプトの終了です。*/
echo “hello!”; //echoでページに出力を行います。
//サンプルは終了です。
?>

問題のスクリプトを書いてしまっても、実行直後に「なんかおかしい!」と気づくと思うので、大事にいたることは無いと思いますが。

稼動中のサーバなどでやってしまうと、「コメント以降のソースが丸見え!!」なんて羽目になるかもしれません・・・。

PHP技術者の方はコメントだけだからといって、くれぐれもプログラムの実行チェックを怠らないようにしましょう。

かなり初心者向けの内容なので、参考する人がどれだけいるか・・・。

以下、参考ページ
PHP- コメント – Manual

コメント (0) »