可能重复:快速php语法问题
return $add_review ? FALSE : $arg;
问号和冒号是什么意思?
谢谢
它是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/
这是PHP ternary operator(也称为条件运算符) - 如果第一个操作数计算为true,则计算为第二个操作数,否则计算为第三个操作数 .
可以将其视为可以在表达式中使用的“if”语句 . 在制作取决于某些条件的简明分配时非常有用,例如:
$param = isset($_GET['param']) ? $_GET['param'] : 'default';
还有一个简写版本(在PHP 5.3之后) . 你可以省略中间操作数 . 如果为真,则运算符将评估为第一个操作数,否则为第三个操作数 . 例如:
$result = $x ?: 'default';
值得一提的是,上面的代码在使用ie $ _GET或$ _POST变量时会抛出未定义的索引通知,并防止我们需要使用更长的版本,使用PHP7中引入的 isset 或a null coalescing operator:
isset
$param = $_GET['param'] ?? 'default';
2 回答
它是if-else运算符的三元形式 . 上面的陈述基本上是这样的:
有关PHP中三元运算的更多详细信息,请参见此处:http://www.addedbytes.com/php/ternary-conditionals/
这是PHP ternary operator(也称为条件运算符) - 如果第一个操作数计算为true,则计算为第二个操作数,否则计算为第三个操作数 .
可以将其视为可以在表达式中使用的“if”语句 . 在制作取决于某些条件的简明分配时非常有用,例如:
还有一个简写版本(在PHP 5.3之后) . 你可以省略中间操作数 . 如果为真,则运算符将评估为第一个操作数,否则为第三个操作数 . 例如:
值得一提的是,上面的代码在使用ie $ _GET或$ _POST变量时会抛出未定义的索引通知,并防止我们需要使用更长的版本,使用PHP7中引入的
isset
或a null coalescing operator: