Php ';的含义:';和'';
可能重复:Php ';的含义:';和'';,php,operators,Php,Operators,可能重复: 我经常看到很多php代码使用?和:,但我并不真正理解它的用途。这里有一个例子: $selected = ($key == $config['default_currency']) ? ' selected="selected"' : ''; 有人能帮我澄清一下吗?:) 这是三元运算符。它基本上是一条线上的if/else 例如,这些行: if (!empty($_POST['value'])) { $value = $_POST['value']; } else {
我经常看到很多php代码使用?和:,但我并不真正理解它的用途。这里有一个例子:
$selected = ($key == $config['default_currency']) ? ' selected="selected"' : '';
有人能帮我澄清一下吗?:) 这是三元运算符。它基本上是一条线上的if/else 例如,这些行:
if (!empty($_POST['value'])) {
$value = $_POST['value'];
} else {
$value = "";
}
可以通过以下行缩短:
$value = (!empty($_POST['value'])) ? $_POST['value'] : "";
如果您不滥用它,它可以使代码更易于阅读
(condition ? val1 : val2)
如果条件
为真,则计算为val1
;如果条件
为假,则计算为val2
从PHP5.3开始,您可能还会看到一个更加模糊的表单,它省略了
val1
:
(val0 ?: val2)
如果val0
计算为非假值,则计算为val0
,否则计算为val2
。哎呀
参见这是if语句的简写 您可以将该语句转换为:
if ($key == $config['default_currency']) {
$selected = ' selected="selected"';
} else {
$selected = '';
}
就像C中一样
您的代码相当于:
if ($key == $config['default_currency'])
{
$selected = ' selected="selected"';
}
else
{
$selected = '';
}
在伪代码中
variable = (condition) ? statement1 : statement2
映射到
if (condition is true)
then
variable = statement1
else
variable = statement2
end if
(相关)+1,如果你不滥用它。我见过很多嵌套三元条件句的例子,每次都让我想哭。+1到如果你不滥用它。(为了爱一切美好的事物,不要筑巢!)