PHP语法问题:问号和冒号是什么意思?

PHP语法问题:问号和冒号是什么意思?,php,syntax,ternary-operator,Php,Syntax,Ternary Operator,可能重复: 问号和冒号是什么意思 感谢这是PHP(也称为条件运算符)-如果第一个操作数的计算结果为真,则作为第二个操作数进行计算,否则作为第三个操作数进行计算 把它想象成一个可以在表达式中使用的“如果”语句。在根据某些条件做出简明的作业时非常有用,例如 $param = isset($_GET['param']) ? $_GET['param'] : 'default'; 还有一个速记版本(在PHP5.3以后的版本中)。可以省略中间的操作数。如果为true,则运算符将作为第一个操作数求值,否

可能重复:

问号和冒号是什么意思

感谢

这是PHP(也称为条件运算符)-如果第一个操作数的计算结果为真,则作为第二个操作数进行计算,否则作为第三个操作数进行计算

把它想象成一个可以在表达式中使用的“如果”语句。在根据某些条件做出简明的作业时非常有用,例如

$param = isset($_GET['param']) ? $_GET['param'] : 'default';
还有一个速记版本(在PHP5.3以后的版本中)。可以省略中间的操作数。如果为true,则运算符将作为第一个操作数求值,否则作为第三个操作数求值。例如:

$result = $x ?: 'default';
值得一提的是,上述代码在使用$\u GET或$\u POST变量时将抛出未定义的索引通知,并防止我们需要使用更长的版本,使用
isset
或PHP7中引入的版本:

$param = $_GET['param'] ?? 'default';

这是if-else运算符的三元形式。上面的说法基本上是这样的:

if ($add_review) then {
    return FALSE; //$add_review evaluated as True
} else {
    return $arg //$add_review evaluated as False
}

有关PHP中三元op的更多详细信息,请参见此处:

Exact duplicate:well spotted,几乎相同的标题。不必吹毛求疵,但您想知道的不是分号,而是冒号吗?说到科隆,这个评论有点像肛门吗?:-)我会编辑,它将帮助任何人搜索……从未来说起,6年后,这就是我遇到的问题。感谢@PaulDixon为将来搜索的人们着想。由于PHP5.3,也可以省略三元运算符的中间部分。表达式
expr1?:expr3
如果
expr1
计算结果为TRUE,则返回
expr1
,否则返回
expr3
。说得好,我会更新…很抱歉试图理解这个@cristianivascu如何读取-如果$active_页面中的值等于字符串“home”,它将打印出“active”,否则它将打印一个空字符串。
if ($add_review) then {
    return FALSE; //$add_review evaluated as True
} else {
    return $arg //$add_review evaluated as False
}