可能重复:
the code “ : ” in php
我经常看到很多使用?和:的PHP代码,但我实际上并不了解它的用途。这是一个例子:
$selected = ($key == $config['default_currency']) ? ' selected="selected"' : '';
请有人清理我吗? :)
答案 0 :(得分:14)
这是三元运营商。它基本上是一行if / else。
例如,那些行:
if (!empty($_POST['value'])) {
$value = $_POST['value'];
} else {
$value = "";
}
可以通过以下行缩短:
$value = (!empty($_POST['value'])) ? $_POST['value'] : "";
如果您不滥用代码,可以使代码更容易阅读。
答案 1 :(得分:6)
(condition ? val1 : val2)
如果val1
为真,则评估为condition
;如果val2
为假,则评估为condition
。
从PHP 5.3开始,您可能还会看到一个更加模糊的表单,遗漏了val1
:
(val0 ?: val2)
如果val0
评估为非假值,则评估为val0
,否则评估为val2
。糟糕!
请参阅http://php.net/manual/en/language.operators.comparison.php
答案 2 :(得分:2)
这是if语句的简写
您可以将该声明转换为:
if ($key == $config['default_currency']) {
$selected = ' selected="selected"';
} else {
$selected = '';
}
答案 3 :(得分:2)
这是ternary conditional operator,就像在C中一样。
您的代码相当于:
if ($key == $config['default_currency'])
{
$selected = ' selected="selected"';
}
else
{
$selected = '';
}
答案 4 :(得分:0)
在伪代码中,
variable = (condition) ? statement1 : statement2
映射到
if (condition is true)
then
variable = statement1
else
variable = statement2
end if