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 :'不存在';

posted on 2021-02-22 10:08  little天  阅读(81)  评论(0编辑  收藏  举报

导航