在php7中,千万不要把你的??当成三元运算符使用!!!
<?php
$tmparr = ['cover'=>'http://img.kevinfei.com.cn'];
echo isset($tmparr['cover'])."\n";
echo !empty($tmparr['cover'])."\n";
$rep = isset($tmparr['cover']) && !empty($tmparr['cover']) ? $tmparr['cover'] : '';
var_dump($rep);
$result = isset($tmparr['cover']) && !empty($tmparr['cover']) ?? '';
var_dump($result);
// 1
// 1
// string(24) "http://img.kevinfei.com.cn"
// bool(true)
?>
php7新增一个运算符
??
,不知道大家平时是在什么时候用它,但是我一直用它代替以前的三元运算符? :
,今天偶然发现,它和三元运算符是不一样的,.在想用
??
判断一个赋值为0
的变量的时候要小心了,结果可能和想象中的不一样从上面的结果可以看出,在php7中 ?? 代表isset ?: 代表empty
今天想告诉大家在php7中关于这个几个最常用的内置函数而可能会引发的问题,需要注意一下啊!!!
0 条评论