《PHP8上級試験対策》PHPのif文で波括弧を省略するとどうなる?意外な落とし穴を解説

  • URLをコピーしました!

はじめに

HPを書いていて、if 文の波括弧 {} をうっかり省略してしまったことはありませんか?「1行だけだから大丈夫」と思って書いたコードが、実は予想外の動きをすることがあります。

この記事では、実際のサンプルコードを使って if文と波括弧の重要性 をわかりやすく解説します。

キーワード:PHP 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行でも、波括弧 {} を書く習慣をつけるのがおすすめ。

小さな省略が大きなバグにつながることもあります。
コードの可読性と安全性のためにも、波括弧は常に書くようにしましょう。

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次