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

时间:2012-12-01 23:38:25

标签: php

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

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

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

2 个答案:

答案 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 - 虽然很多人称之为“?:运算符”,因为“三元”是一个很少使用的词。