"?:"是三目运算符,语法格式为:$result = $test ? $test:'';
意思就是当$test
存在时(即empty($test)为false
),则返回它本身,否则返回空(当然也可以返回其他,这里的空只是举个例子)
"??"是php7新引入的语法,它相当于是isset($result['key']) ? $result['key']:''
;意思是若这个key的变量存在且值不为NULL则返回它本身,否则返回空。
在实际的使用中,需要区分!不然很容易出现问题!
举例如下:
<?php
$arr['kk'] = 1;
$arr['test'] = 1;
$b = 2;
var_dump($arr['test']??0);
var_dump($b?$b:0);
var_dump($arr['aa']??4);
- 1
- 2
- 3
- 4
- 5
结果如下:
int(1)
int(2)
int(4)