php三目运算符的省略写法

 

完整的写法就不说了,这里说省略第二个表达式的写法:

$a = $b ? : $c;

 

需要明确的是:当第一位的结果符合条件时,第二位是第一位的值,条件是指:bool true或 其他非空值.

 

如:

$a = 2;
$b = $a ? : 3;

 

$b = 2,第一位表达式的值是$a, (结果$a)符合条件,所以第二位是第一位的值(结果$a)

 

这种用法容易出错:

$a = array('b' => 'bb');
$c = isset($a['b']) ? : 'dd';

 

$c=true,因为这里第一位的表达式的值true,  (结果true)符合条件,所以第二位是第一位的值(结果true)。

posted @ 2015-10-12 23:53  物理挂了  阅读(1620)  评论(0编辑  收藏  举报