美文网首页
php5.6升级到php7.1遇到得变更

php5.6升级到php7.1遇到得变更

作者: wwwxi | 来源:发表于2021-03-12 16:06 被阅读0次

    1.动态方法调用

    $a = ['add', 'sub'];
     
    class Test
    {
      public function add()
      {
        echo 1 + 2;
      }
    }
     
    $t = new Test();
    $t->$a[0]();
    

    上例在 PHP5.6 下可以正常运行,但在 PHP7 下会抛出 Fatal error: Function name must be a string。这是因为 PHP5 下执行$t->$a<a href="">0</a>时,会先执行$a[0],获取元素值,然后执行对象的具体方法。

    在 PHP7 下,则会先执行 $t->$a ,导致抛出错误,中断执行。如需要在 PHP7 下正常执行,需要修改为$t -> {$a[0]}()。
    2.方法参数必须传参

    function add($a){
     echo 1;
    }
    add();//报错
    add(1);//不报错
    

    3.变量类型自动转换减少

    $res = ['code'=>1,'res'=>''];
    $res['res']['a'] = 'sdfaasdfa';//不能正常赋值
    
    $res = ['code'=>1,'res'=>[]];
    $res['res']['a'] = 'sdfaasdfa'//可以正常赋值
    

    4.php7.2以上不能使用object类

    相关文章

      网友评论

          本文标题:php5.6升级到php7.1遇到得变更

          本文链接:https://www.haomeiwen.com/subject/ecjoqltx.html