PHP的各种令人混淆的“存在”的详细分解
在传统PHP中,一致有着各种意义上的“存在”,他们都可以用来判断一个变量是否存在,但是使用起来又很容易混淆,今天就来好好地理一下。
isset
isset指的是一个变量存在,除了null以外,都算是成立的。
empty
empty指的是一个变量为空,包扩null和空串,也包括数字0。
!empty
和empty相反
直接if判断变量
直接用if去判断一个变量,比如$a=1;if($a){return 'exsit';},也可以判断变量是否存在,经过测试,和!empty一致。
概括完了,传统用法之后,我们再结合PHP7的新特性看下。
??和?:的用法
$a = 0; dump($a ?? '不存在');//0 dump($a ?: '不存在');//不存在
由此可知
$a ?? '不存在'; 等效于 isset($a) ? $a :'不存在';
$a ?:'不存在'; 等效于 $a ? $a :'不存在';
活到老学到老