Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ';的含义:';和'';_Php_Operators - Fatal编程技术网

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到如果你不滥用它。(为了爱一切美好的事物,不要筑巢!)