はじめに
HPを書いていて、if 文の波括弧 {} をうっかり省略してしまったことはありませんか?「1行だけだから大丈夫」と思って書いたコードが、実は予想外の動きをすることがあります。
この記事では、実際のサンプルコードを使って if文と波括弧の重要性 をわかりやすく解説します。
目次
PHPのif文と波括弧の関係
PHPでは if 文のあとに波括弧 {} を省略できます。
しかし省略した場合、if が効くのは「直後の1行だけ」です。
複数行をまとめて制御したいときに波括弧を忘れると、意図しない動作 になる可能性があります。
サンプルコードを確認する
<?php
declare(strict_types=1);
error_reporting(-1);
if(false)
echo "ng <br>";
echo "ng2 <br>";
echo "fin.";コードの解説
strict_types と error_reporting
declare(strict_types=1);→ 型を厳密にチェックする宣言。安全性を高めるが、この例では直接の影響はなし。error_reporting(-1);→ すべてのエラーを表示する設定。開発時に役立つ。
if文で波括弧を省略した場合
この部分がポイントです。
if(false)
echo "ng <br>";
echo "ng2 <br>";解釈されるのは次のようになります。
if(false)
echo "ng <br>"; // 実行されない
echo "ng2 <br>"; // ifとは無関係に必ず実行される実行結果を見てみよう
ブラウザで実行すると、以下のように表示されます。
ng2 <br>
fin.ng <br> は出力されず、ng2 <br> は必ず表示されるのがポイントです。
if文で複数行を制御する正しい書き方
意図通りに2行を if でまとめたい場合は、必ず波括弧 {} を使いましょう。
if(false) {
echo "ng <br>";
echo "ng2 <br>";
}これで false のときは両方の echo が実行されません。
まとめ
if文で波括弧を省略すると、制御できるのは直後の1行だけ。- 波括弧を忘れると、思わぬ動作やバグの原因 になる。
- PHPでは処理が1行でも、波括弧
{}を書く習慣をつけるのがおすすめ。
小さな省略が大きなバグにつながることもあります。
コードの可読性と安全性のためにも、波括弧は常に書くようにしましょう。
