1. 程式人生 > >php7與php5呼叫函式的區別

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"));