行の区切り
そふぃのPHP入門 >> PHP言語リファレンス >> PHPの基本文法 >> 行の区切り

行の区切り

プログラムの行の終わりには

  • 「;」(セミコロン)を!!

処理の終わりにセミコロン

前回はecho()文とprint()文を分けて紹介しましたが、1つのスクリプトにまとめると以下のようになります。ちなみに前回はHello Woridでしたが今回は違います。最初のサンプルはエラーが出ますので注意して下さい。

間違った構文

PHPエラー構文

  1. <?php
  2. // この構文はエラーが発生します。
  3. print "print文サンプル"
  4. echo "echo文サンプル"
  5. ?>

さて、表示してみるとどうなるでしょう。

出力結果

Parse error: parse error in (ファイルパスとエラー行数)

と、エラーが表示されて実行されなかったと思います。上のサンプルには致命的なミスがあって、PHPの文法上認められていない書き方なのでこんなエラーが出てスクリプトの実行ができなくなってしまうのです。どのようなミスかというと、1つの命令(処理)の終わりをPHPに示すものがないのでPHPが混乱していると思って下さい。命令の終わりを示して表示されるようにするにはどうすればいいかというと・・・・

正しい構文

  1. <?php
  2. print "print文サンプル";
  3. echo "echo文サンプル";
  4. ?>

出力結果

print文サンプルecho文サンプル

何が違うか分かったでしょうか?早速print()文の()を外して横着してるとか、そういう事じゃないです(笑)。行末に「;」(セミコロン)があるかないかが違います。

PHPでは行の終わり、というか1つの命令の終わりを「;」で示す必要があります。「;」が省略を許されるのは「?>」の直前の文のみです。つまり、上の例でいくと、echo()文の方は「;」がなくてもOKです。これは何故かというと「?>」というPHPスクリプトの終了タグに「;」が含まれているとみなされるためです。

と、いう事は1行のみのスクリプトなら常に「;」の省略が可能ですがプログラムの行の区切りには常に「;」をつけるようにした方がコーディングミスが減って無難だと思います。プログラムの処理の区切りをセミコロンつけていちいちPHPに知らせなくてはならないという事でかなり面倒だとは思いますがこの規則、どうやら他のプログラムにも共通しているようです。

さて、上記のサンプルでは改行されて表示されませんので不便です。これを改行して表示するためにはただ<br />を入れればいいだけなのですが、改行処理と一緒に説明しておきたい事もあるので回りくどいようですが後回しにします。次は今まで説明のなかった「"」(ダブルクォーテーション)です。改行処理の説明は多分その後になると思います。