PHPにおける三項演算子
次のコードがあるとします。これは、ユーザーがすでに18歳以上かどうかをチェックするものです:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
ご覧の通り、if-else構造は、単に特定の値を変数$adultに書き込むためだけに必要です。条件の中で単一の変数への代入しか行われないこのようなタスクに対しては、三項演算子と呼ばれるより短い解決策があります。
その構文は以下の通りです:
<?php
variable = condition ? value1 : value2;
?>
演算子の動作:条件が真の場合、value1が返され、それ以外の場合はvalue2が返されます。レッスンの冒頭で示したコードを三項演算子で書き直してみましょう:
<?php
$age = 17;
$adult = $age >= 18 ? true: false;
var_dump($adult);
?>
ちなみに、結果を変数に書き込まずに、var_dumpで直接出力することもできます:
<?php
$age = 17;
var_dump( $age >= 18 ? true: false );
?>
三項演算子は、最も単純なケースでのみ使用するべきです。なぜなら、その使用はコードの理解を難しくするからです。
変数$numが与えられ、それは負の値か正の値のいずれかとします。変数$numがゼロ以上なら数値1を、変数$numがゼロ未満なら数値-1を、変数$resに書き込んでください。