此问题在此处已有答案:
What does ? ... : ... do? [duplicate](8个答案)6天前关闭.
return $add_review ? FALSE : $arg;
问号和冒号是什么意思?
ecfdbz9o1#
这是PHP的三元运算符(也称为条件运算符)-如果第一个操作数的值为真,则作为第二个操作数进行计算,否则作为第三个操作数进行计算。可以把它看作是一个可以在表达式中使用的“if”语句。在根据某些条件进行简洁的赋值时非常有用,例如。
$param = isset($_GET['param']) ? $_GET['param'] : 'default';
还有一个简化版本(在PHP 5.3以后)。你可以省略中间的操作数。如果它为真,运算符将作为第一个操作数计算,否则作为第三个操作数计算。例如:
$result = $x ?: 'default';
值得一提的是,上面的代码在使用$_GET或$_POST变量时会抛出未定义的索引通知,为了防止我们需要使用更长的版本,使用isset或PHP7中引入的null合并运算符:
isset
$param = $_GET['param'] ?? 'default';
e3bfsja22#
它是if-else运算符的三元形式。上面的语句基本上读起来像这样:
if ($add_review) then { return FALSE; //$add_review evaluated as True } else { return $arg //$add_review evaluated as False }
在这里查看更多关于PHP中的三进制操作的细节:http://www.addedbytes.com/php/ternary-conditionals/
2条答案
按热度按时间ecfdbz9o1#
这是PHP的三元运算符(也称为条件运算符)-如果第一个操作数的值为真,则作为第二个操作数进行计算,否则作为第三个操作数进行计算。
可以把它看作是一个可以在表达式中使用的“if”语句。在根据某些条件进行简洁的赋值时非常有用,例如。
还有一个简化版本(在PHP 5.3以后)。你可以省略中间的操作数。如果它为真,运算符将作为第一个操作数计算,否则作为第三个操作数计算。例如:
值得一提的是,上面的代码在使用$_GET或$_POST变量时会抛出未定义的索引通知,为了防止我们需要使用更长的版本,使用
isset
或PHP7中引入的null合并运算符:e3bfsja22#
它是if-else运算符的三元形式。上面的语句基本上读起来像这样:
在这里查看更多关于PHP中的三进制操作的细节:http://www.addedbytes.com/php/ternary-conditionals/