PHPのコメントアウト3種類とよくあるミス

PHPのコメントアウトの方法は3種類あります。

その3つと、そもそもコメントについて説明します。

あと、僕もいまだによくやるコメント時のミスについても触れておきます。

目次

コメントアウトとは

コメントとは、プログラムコードの中に書くメモのようなものです。

コメントはプログラムコードとして認識されないので、日本語で分かりやすく書き残せます。

プログラムコードはバージョンアップなどでコードが増えていくと複雑で何の処理をしていたか分かり辛くなってしまうことがしょっちゅうあります。

そこでこのコメントを使えば、後から仕様変更などで修正しようと思ったときに修正箇所の目処を付けやすくなります。

 

また、それ以外にも一時的に不要になったコードをコメントアウトしておいて、再度必要となったときに復活させるなんてことにも使えます。

 

コメントの種類は3種類あります。

よく使うのは2つだけですが一応それも次に説明します。

PHPのコメントアウトの種類

単行コメント

1行だけコメントアウトする方法です。

コメントする部分の先頭に // もしくは # を書きます。

#はあまり使わないです。

 

// の前にプログラムコードがある場合は、そのコードは正常に動作します。

このコメントは、// 以降に書かれたものをプログラムコード以外と認識します。

 

例えば以下のように使います。

<?php
class Sample1 {
  // サンプルデータを保持する変数。初期値は1
  public $data = 1;

  public function fnc1($v) {
    $this->data += $v;// $v は数値です。
    //echo $this->data; 
  }
}

3行目は変数の説明を書いています。

7行目には引数で渡された変数の型を定義しておきました。このとき、コメントより前の部分のコードは正常に動作します。

8行目はテスト時に変数の値を出力して確認したが、一時的に確認が終了したのでコメントアウトしました。後で別のテストをするために残してある状態です。

 

といった感じに使います。

複数行コメント

複数行まとめてコメントアウトする方法です。

コメントの開始時には /* と書き、終了時には */ と書きます。

この間が全てコメントアウトされます。

 

関数やクラスの処理全体について説明する場合などに使ったり、まとめて不要になった処理の削除に使ったりします。

 

例えば以下のような感じです。

<?php
class Sample1 {
  public $data = 1;
  /*
   * data に 引数の値を追加する。
   */
  public function fnc1($v) {
    $this->data += $v;// $v は数値です。
  }

/*  public function fnc2($v) {
    $this->data -= $v;
  }*/
}

4-6行目のコメントはその次にある fnc1() が行う処理の説明が書かれています。

引数や戻り値の説明、処理内容の説明を書いたりします。

11-13行目はdataから引数の値分引く処理がありましたが、不要になったので削除しました。

この処理は全てプログラムコードと認識されず、実行されません。

当然、別ファイルから呼び出していたらそっちもエラーになります。

コメント時のよくあるミス

コメントのよくあるミスについてです。

コメントのミスなんてしょせんコメントでしょ?って思うかもしれません。

されどコメントです。

HTMLエリアに書いてしまう

<div>
  /*<p><?php
  $name = "逢 上雄";
  echo $name;
  ?></p>*/
</div>

PHPタグの外側にPHPコメントを書いてもコメントアウトはされません。

この場合 /* や */ は正常にHTMLとして出力されます。

 

ちなみにこの場合、

<div>
  <!--<p><?php
  $name = "逢 上雄";
  echo $name;
  ?></p>-->
</div>

のようにHTMLコメントを書くとブラウザで表示したときには表示されません。

しかし、HTMLのソースを表示したときには <!–<p>逢 上雄</p>–> のように出力されています。

誰かに見られたら恥ずかしいですね(笑)

 

上のように変なHTMLコメントが出力されていたら恥ずかしいだけですが、そうでない場合もあります。

例えば既にリリースした環境で名前が正しく設定されているか確認したい場合、上記のようにHTMLコメントで出力しておけば表面は正常に動いていて、HTMLソースを見た場合にだけ値を確認するということができます。

もちろん名前などは個人情報なので扱いには注意です。

コメントが重複して正しく機能しない

<div>
  <p><?php /*
  $name = "逢 上雄";
  echo $name;
  /*$namekana = "アイウエオ";
  echo $namekana;*/
  */ ?></p>
</div>

例えば名前のカナは出力しなくてよくなったので 5-6 行目はコメントアウトすることにしました。

その後、名前全部出力が不要になったので 2-7 行目をコメントアウトすることにしました。

このとき、2行目に追加したコメントの開始文字 /* に対し、コメントの終了位置は 7 行目ではなく、もともとあった6行目のものになってしまいます。

そして、PHPコード内に意味の無い */ だけが残るためエラーになります。

 

他にも、

<div>
  <!--<p><?php 
  $name = "逢 上雄";
  //echo $name; /*
  $namekana = "アイウエオ";
  echo $namekana;*/
  ?></p>-->
</div>

のように 4行目の最後にある複数行コメントの /* は、その行の頭にある // によってただのメモとしてしか扱われなくなります。

つまり、複数行コメントは機能せず、6行目の */ は不明なコードになるのでエラーになります。

 

こんなバカな書き方しないでしょ??笑

って思うかもしれませんが、意外とあります(笑)

もしこうなっても、最近のエディタは優秀で色分けなどですぐに原因は分かると思うので誰かに見られて恥ずかしくなる前に修正しちゃいましょう!

まとめ

コメントは、プログラム内に書くメモのようなもの。

プログラムコードとは別物として認識してくれるので、不要になったプログラムコードの一時的な削除にも使える。

コメントには1行だけコメントアウトする // と、複数行コメントアウトする /*  */ がある。

#もあるけど // と被るので使わない。

この記事を書いた人

ライターのプロフィールが入ります。このライター情報を入れたくない場合は管理画面の ユーザー > あなたのプロフィールの「プロフィール情報」を未入力にすれば表示されません。逆に「プロフィール情報」を入力することでライター情報を表示できます。

コメント

コメントする

CAPTCHA


目次
閉じる