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

可能重复:
快速PHP语法问题

return $add_review ? FALSE : $arg; 

问号和冒号是什么意思?

谢谢

2 Solutions collect form web for “PHP语法问题:问号和冒号是什么意思?”

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

把它看作你可以在expression式中使用的“if”语句。 在根据某些条件进行简明的作业时可能非常有用,例如

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

这也是一个简短的版本(在PHP5.3以上)。 你可以省略中间的操作数。 操作符将作为第一个操作数进行评估,如果是,则为第三个操作数。 例如:

 $result = $x ?: 'default'; 

值得一提的是,当使用ie $ _GET或$ _POSTvariables时,上面的代码会抛出未定义的索引通知,并且阻止我们需要使用更长的版本,而在PHP7中引入isset或null合并运算符 :

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

这是if-else操作符的三元forms。 上面的语句基本上是这样写的:

 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中回显的项目
  • 如何从string中删除换行符(没有字符!)?
  • 获取操作系统信息
  • jquery可sorting列表不会序列化,为什么?
  • “AND”和“&&”作为操作符
  • 用PHP连接到受WS-Security保护的Web服务
  • 在PHP中使用json_encode对象(不pipe范围)
  • 将数组的第一个元素转换为PHP中的string
  • Laravel雄辩的关系的列的总和
  • PHP的:我可以得到一个array_map函数的索引?
  • 转义MySQL通配符