PHP 三元运算符
$a = $a ? $a : 1;//第一种
$a = $a ? : 1;//第二种
第二种写法从PHP 5.3引入,表示若$a返回值为真时,取$a的返回值。 此外,在PHP7中引入了 ?? 运算符
$a = $a ?? 1;
该表达式与第二种写法类似,可以达到相同的效果。但 ?? 运算符是以判断$a变量是否存在于上下文环境中作为条件,而三元运算符不具备这种判断。所以 ?? 运算符可 用于判断$a变量不存在的情况(也可用于数组),而使用三元运算符判断一个未定义的变量,PHP会抛出异常。也正是因为这样,用??判断一个赋值为0的变量的时候结果是不一样的。
$a=0;
$c=1;
$b=$a??$c;
echo 'a:'.$a.',b:'.$b.',c:'.$c;
//a:0,b:0,c:1
$a=0;
$c=1;
$b=$a?$a:$c;
echo 'a:'.$a.',b:'.$b.',c:'.$c;
//a:0,b:1,c:1
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: