はじめに
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行でも、波括弧
{}
を書く習慣をつけるのがおすすめ。
小さな省略が大きなバグにつながることもあります。
コードの可読性と安全性のためにも、波括弧は常に書くようにしましょう。