[PHP] if文を短く書いてスッキリさせる

  • 公開日:2015/8/19
この記事は最終更新日から9年以上が経過しています。

条件を判定して処理をするif構文の記述方法についてのメモ。
基本的な使い方はこう。else以下は省略できます。

if (条件式) {
    // 条件が真(true)のときの処理
}
else {
    // 条件が偽(false)のときの処理
}

HTMLの中にPHPを直接書いたりする場合には、上のように波括弧「{}」で数行書くより、もっとスッキリ書いた方が見やすくなります。

if文のいろいろな記述

波括弧を使ったオーソドックスなif文

if ($lang == 'Jp') {
    echo 'こんにちは';
}
else {
    echo 'Hello';
}

コロンを使ったif文

if ($lang == 'Jp') :
    echo 'こんにちは';
else :
    echo 'Hello';
endif;

以下では伝わりにくいですが、コロンを使った記述ではif文内の処理が長いHTMLになっても見やすくなります。
WordPressなどのテンプレートでは波括弧よりもコロンの方がよく使用されている印象があります。

<?php if ($lang == 'Jp') : ?>
    <p>こんにちは</p>
<?php else : ?>
    <p>Hello</p>
<?php endif; ?>

コロンでの記述はif文に限らず、for文、while文、foreach文、switch文でも使用されます。

1行に簡略したif文

波括弧を省略して1行で書くこともできます。

if ($lang == 'Jp') echo 'こんにちは';

三項演算子

echo $lang == 'Jp' ? 'こんにちは' : 'Hello';

こう書くとif文と似てますが、三項演算子は演算子の1つなので結果として式を返します。if文のように条件に応じた処理を記述するものではないので、混同してしまわないように。

考え方としては次のような記述の方がわかりやすい。

$msg = $lang == 'Jp' ? 'こんにちは' : 'Hello';
echo $msg;