次のタイプの if/else 構文の名前は?
print $foo = ($hour < 12) ? "Good morning!" : "Good afternoon!";
PHPマニュアルに専用ページが見つかりませんでした。私は(昨年)本を読んだので、それが存在することを知っていましたが、今、この投稿を見つけました。
これを三項式といいます
http://php.net/manual/en/language.expressions.php
これは、プログラムの流れを制御するために使用すべきではないため、「if の代替構文」ではないことに注意してください。
変数を設定する簡単な例では、次のような長い if ステートメントを避けるのに役立ちます: (ref: php docs )
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
// The above is identical to this if/else statement
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}
ただし、単純な変数割り当て以外の場所でも使用できます
function say($a, $b) {
echo "{$a} {$b}";
}
$foo = false;
say('hello', $foo ? 'world' : 'planet');
//=> hello planet
これは三項演算子と呼ばれますが、「三項」はめったに使用されない単語であるため、多くの人が「?:
演算子」と呼んでいます。