天天看點

php7與php5調用函數的差別

php7的寫法要求更加嚴謹

直接看代碼

<?php

class test {

    public static function test1($name, $name1)
    {
        echo $name . "-" . $name1;
    }
}

$testArr = array("test" , "test1");

$test = new test();

$test->$testArr[1]("bill", "test");  // 這行代碼有問題
           

這段代碼在php5下面運作的結果是 bill-test.沒啥問題

但是在php7下面會報錯

在php7下面有幾種改進。(本身以上寫法就有問題,但是調試起來不容易發現)

應該改為:

$test->{$testArr[1]}("bill", "test");

或者更加規範的寫法:

call_user_func_array(array($test, $testArr[1]), array("bill", "test"));
           

繼續閱讀