以下类型的 if/else 语法的名称是什么:
print $foo = ($hour < 12) ? "Good morning!" : "Good afternoon!";
我在 php 手册中找不到任何专用页面。我知道它存在,因为我(去年)用它读过一本书,现在我找到了这篇文章。
这称为三元表达式
http://php.net/manual/en/language.expressions.php
您应该注意,这不是“if 的替代语法”,因为它不应该用于控制程序的流程。
在设置变量的简单示例中,它可以帮助您避免冗长的 if 语句,如下所示:(参考: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
它被称为三元运算符——尽管许多人称它为“?:
运算符”,因为“三元”是一个很少使用的词。