如果PHP中的/ else语法调用了这个替代方法是什么?

SOM*_*OMN 8 php

以下类型的if/else语法的名称是什么:

print $foo = ($hour < 12) ? "Good morning!" : "Good afternoon!";
Run Code Online (Sandbox Code Playgroud)

我在php手册中找不到任何专用页面.我知道它存在,因为我已经读了一本书(去年),现在我找到了这篇文章.

mač*_*ček 11

这称为三元表达式

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'];
}
Run Code Online (Sandbox Code Playgroud)

然而,它可以用于其他地方,而不仅仅是简单的变量分配

function say($a, $b) {
    echo "{$a} {$b}";
}

$foo = false;

say('hello', $foo ? 'world' : 'planet');

//=> hello planet
Run Code Online (Sandbox Code Playgroud)


Nie*_*sol 10

它被称为三元运算符 - 虽然很多人称之为" ?:运算符",因为"三元"这个词很少用.