php7的isset和empty的变化

代码相关 php 判断 2019-07-5

php7.jpg

php5.6我判断变量是这样

if(empty($this->fields->d)){}
if(isset($this->fields->d)){}

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)){}

参考
https://learnku.com/laravel/t/3021/isset-is-not-right-after-upgrading-php7

12条评论

    演员

    换主题了! 以前你不是这样的!

    游客 Windows10 129天前回复

    心灵博客

    这方法好,通用5、7

    游客 MacOS 129天前回复

    Eltrac

    有点久没来了,居然换主题了,这主题叫什么名字啊

    游客 Windows7 130天前回复

      泽泽社长
      @Eltrac

      没起名字呢,起名字太累了

      作者 MacOS 130天前回复

        Eltrac
        @泽泽社长

        不难啊,翻开英语词典随便挑一个词出来就好了

        游客 Windows7 130天前回复

    Henry

    刚发现你博客换主题了,这个真简洁

    游客 Windows10 130天前回复

    哥斯拉

    刚发现你博客换主题了,这个真简洁

    游客 Windows7 130天前回复

      泽泽社长
      @哥斯拉

      嗯,我挺喜欢这种风格的

      作者 MacOS 130天前回复

    lee

    博主,能否加个友链,或者付费到你这打个广告

    游客 Windows10 131天前回复

      泽泽社长
      @lee

      我现在不加友链了,广告的话可以详谈

      作者 Windows7 131天前回复

    Hran

    神奇的拍黄片

    游客 Windows10 132天前回复

      泽泽社长
      @Hran

      踩坑日记,这东西我纠结了半天,百度后才知道原因

      作者 Windows7 132天前回复

智能推荐