完整的写法就不说了,这里说省略第二个表达式的写法:
$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)。
原文:http://www.cnblogs.com/wuliguale/p/4873312.html