PHPのIf文的なものまとめ

某OSSのソースコードを見てたら、if文の代わりに使っているいろんな記述がありました。知ってないと読めないモノもいろいろあったのでちょっとまとめてみます。

普通にif文

if( $condition ) {
    hello();
}

とりあえずごくごく普通のやつ。

if( $condition ) hello();

括弧を省略すると、if文の次の式が実行される。

三項演算子

( $condition ) ? hello() : null;

条件を反転するともう少し短くかけます。

( !$condition ) ?: hello();

PHP5.3以降からtrueの時の動作を省略できるようになったようです。

switch文

switch文を使ってもif文と同じことが出来ます。

switch (true) {
    case $condition:
        hello();
        break;
}

正直switch文を使うべきケースがよくわかってません。if~elseifで十分だと思う。

and演算子

論理演算子の&&や、andを使ってもif文みたいなコトは出来ます。論理積演算子の場合左から順に処理され、falseyな値が出た時点で処理を終了するので、こんな書き方が出来ます。

$condition && hello();
$condition and hello();

まとめ

普通にif文使えよ!って思いました。可読性を大事にしましょう。