php7的isset和empty的变化

180it 2019-09-23 AM 2938℃ 0条

3197293274.jpg
php5.6我判断变量是这样

if(empty($this->fields->d)){}
if(isset($this->fields->d)){}
PHP
而php7测试这样怎么判断都是Flase,后来通过查资料发现php7在这个判断上做了些变化。
php7判断的时候会依次判断,php5.6则是预加载后判断!

也就是说php5.6判断是先执行$this->fields->d然后在对结果进行判断。
而php7则是把$this->fields->d当做一个变量进行判断,而没有执行它。

知道原理后就可以很好的写出兼容的判断代码了。

将$this->fields->d赋值于一个变量,然后对这个变量进行判断就可以了!。

$d=$this->fields->d;
if(empty($d)){}
if(isset($d)){}
PHP
参考
https://learnku.com/laravel/t/3021/isset-is-not-right-after-upgrading-php7

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

php7的isset和empty的变化