8

次のタイプの if/else 構文の名前は?

print $foo = ($hour < 12) ? "Good morning!" : "Good afternoon!";

PHPマニュアルに専用ページが見つかりませんでした。私は(昨年)本を読んだので、それが存在することを知っていましたが、今、この投稿を見つけました。

4

2 に答える 2

14

これを三項式といいます

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
于 2012-12-01T23:39:38.163 に答える
10

これは三項演算子と呼ばれますが、「三項」はめったに使用されない単語であるため、多くの人が「?:演算子」と呼んでいます。

于 2012-12-01T23:40:00.670 に答える