一尘不染

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

php

return $add_review ? FALSE : $arg;

问号和冒号是什么意思?

谢谢


阅读 512

收藏
2020-05-29

共1个答案

一尘不染

这是PHP
三元运算符(也称为条件运算符)-如果第一个操作数的值为true,则计算为第二个操作数,否则为第三个操作数。

将其视为可以在表达式中使用的“ if”语句。在根据某些条件进行简洁的分配时可能非常有用,例如

$param = isset($_GET['param']) ? $_GET['param'] : 'default';

还有一个简写版本(从PHP 5.3开始)。您可以省略中间操作数。如果为真,则运算符将作为第一个操作数,否则为第三个操作数。例如:

$result = $x ?: 'default';

值得一提的是,上面的代码在使用$ _GET或$
_POST变量时会抛出未定义的索引通知,并且为了防止我们需要使用更长的版本,isset或者使用PHP7中引入的空合并运算符:

$param = $_GET['param'] ?? 'default';
2020-05-29