以下类型的if / else语法的名称是什么:
print $foo = ($hour < 12) ? "Good morning!" : "Good afternoon!";
我在php手册中找不到任何专用页面。我知道它存在,因为我已经阅读了一本书(去年),现在我找到了post。
答案 0 :(得分: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'];
}
然而它可以用于其他地方,而不仅仅是简单的变量分配
function say($a, $b) {
echo "{$a} {$b}";
}
$foo = false;
say('hello', $foo ? 'world' : 'planet');
//=> hello planet
答案 1 :(得分:10)
它被称为ternary operator - 虽然很多人称之为“?:
运算符”,因为“三元”是一个很少使用的词。