条件分岐
if文 ▲
書き方その1
if( $var > 0 ) {
echo '$varは1以上の値です';
} elseif( $var === 0 ) {
echo '$varは0です';
} else {
echo '$varは1以上でも0でもありません。負の値です。';
}
書き方その2
if( $var > 0 )
{
echo '$varは1以上の値です';
}
elseif( $var === 0 )
{
echo '$varは0です';
}
else
{
echo '$varは1以上でも0でもありません。負の値です。';
}
書き方その3
if( $var > 0 ):
echo '$varは1以上の値です';
elseif( $var === 0 ):
echo '$varは0です';
else:
echo '$varは1以上でも0でもありません。負の値です。';
endif;
後ろに続く処理が1つだけであれば、1行で書くことも多い
※以下は個人的な使い分けメモです
PHPコードだけであれば、基本的にその1とその2を使用する
その3の書き方は if~endif; により開始・終了点がわかりやすいため、HTMLコードも挟む場合に使用する
スペースは変数や値、条件式と{}の間にあると見やすい
switch文 ▲
書き方その1
switch( $i ) {
case 0:
case 1:
case 2:
echo 'iは0以上3未満の整数'
break;
case 3:
echo 'iは3';
default:
echo 'iは0~3以外の値'
break; //!< 最後の行は省略可
}
書き方その2
switch( $i )
{
case 0:
case 1:
case 2:
echo 'iは0以上3未満の整数'
break;
case 3:
echo 'iは3';
default:
echo 'iは0~3以外の値'
break; //!< 最後の行は省略可
}
書き方その3
switch( $i ):
case 0:
case 1:
case 2:
echo 'iは0以上3未満の整数'
break;
case 3:
echo 'iは3';
default:
echo 'iは0~3以外の値'
break; //!< 最後の行は省略可
endswitch;
switch文の条件式部分は緩やかな比較( $a === $b ではなく $a == $b )であることに注意する
ループ処理中であれば、break ではなく continue を置くこともできる
使い分けやスペース周りはif文と同様のため割愛
match文 ▲
$result = match (制約式) {
単一の条件式 => 返却式,
条件式1, 条件式2 => 返却式,
};
PHP 8.0.0 以降から使用可能
switch 文とは異なり弱い比較(==)ではなく、型と値の一致チェック(===) に基づいて行われる
switch 文と異なり条件ごとに break を書かなくても後ろの処理は実行されない
$animal = 'dog';
$result = match ($animal) {
'neko', 'cat' => 'This animal is an cat', // neko か cat の文字列なら出力
'inu', 'dog' => 'This animal is a dog', // inu か dog の文字列なら出力
'wani', 'alligator' => 'This animal is a alligator', // wani か alligator の文字列なら出力
default => callName(), // それ以外(デフォルト)ならcallName関数の戻り値で出力
};
echo $result; // This animal is a dog
目次