首頁 > 後端開發 > php教程 > call_user_func報warning,php官網也是這麼呼叫的。 。

call_user_func報warning,php官網也是這麼呼叫的。 。

WBOY
發布: 2016-09-19 09:16:31
原創
1099 人瀏覽過

hpcall_user_func報warning,php官網也是這麼呼叫的。 。

call_user_func報warning,php官網也是這麼呼叫的。 。

回覆內容:

hpcall_user_func報warning,php官網也是這麼呼叫的。 。

call_user_func報warning,php官網也是這麼呼叫的。 。

<code class="php">class Father {
    public function __construct() {
        echo "father<br>";
    }
}

class Child extends Father {
    public function say() {
        echo "hello";
    }

    static function say2() {
        echo "hello2";
    }
}

// 调用对象方法需要先实例化对象
$child = new Child;
call_user_func([$child, 'say']);

// 可以直接调用类静态方法
call_user_func(['child', 'say2']);</code>
登入後複製

直接用呼叫類別靜態方法的方式掉物件方法是一種錯誤的寫法,在 PHP5.5(好像是) 之前是會盡量滿足然後報 warning,但是在 5.5 之後就是一個錯誤。

你用call_user_func方法時,掉用的是類別裡面的函數,所以需要實例化一下,你要是直接寫成方法才可以像你那麼寫,例如:

<code>function develop($val){
    if($val){
        echo 'Successful';
    } else {
        echo 'Fail';
    }
}

call_user_func('develop', true);</code>
登入後複製

你這樣的寫法應該是呼叫靜態的方法
如果想呼叫實例方法
你就要實例化類別

嚴格模式,注意php版本。

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板