PHP Namespace 錯誤 Warning call_user_func_array() expects parameter 1 to be a valid callback

使用 __NAMESPACE__  取得當前文件的 Namespace

呼叫 Namespace 裡的 function

/**
* https://vector.cool
*/
Namespace VECTOR\COOL;

function test() {
    echo "Hello world!\n";
}

call_user_func(__NAMESPACE__ .'\test');

呼叫 Namespace 裡的 class 中的 function

/**
* https://vector.cool
*/
Namespace VECTOR\COOL;

class Hello {
    static public function test() {
        echo "Hello world!\n";
    }
}

call_user_func(__NAMESPACE__ .'\Hello::test'); // String
call_user_func(array(__NAMESPACE__ .'\Hello', 'test')); // Array

在 WordPress Action 中呼叫

/**
* https://vector.cool
*/
Namespace V123\PLUGIN\CFU;
add_action('init',__NAMESPACE__.'\create_initial_admin_menu');

參考資料:

http://php.net/manual/en/language.namespaces.nsconstants.php
https://stackoverflow.com/questions/14682356/relative-namespaces-and-call-user-func

相關文章:

READ  PHP 取年齡或年資 get age of date

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料