查詢

call_user_func()函式—用法及示例

「 動態地呼叫使用者自定義函式或方法 」


函式名: call_user_func()

函式功能: 動態地呼叫使用者自定義函式或方法

適用版本: PHP 4 >= 4.0.4, PHP 5, PHP 7

用法示例:

// 示例1: 呼叫全域性函式 function sayHello($name) { echo "Hello, " . $name; }

call_user_func("sayHello", "John"); // 輸出: Hello, John

// 示例2: 呼叫類的靜態方法 class Greeting { public static function sayHello($name) { echo "Hello, " . $name; } }

call_user_func(array("Greeting", "sayHello"), "John"); // 輸出: Hello, John

// 示例3: 呼叫物件的方法 class Greeting { public function sayHello($name) { echo "Hello, " . $name; } }

$greeting = new Greeting(); call_user_func(array($greeting, "sayHello"), "John"); // 輸出: Hello, John

// 示例4: 呼叫匿名函式 $greetFunc = function($name) { echo "Hello, " . $name; };

call_user_func($greetFunc, "John"); // 輸出: Hello, John

說明: call_user_func() 函式可以接收一個或多個引數,第一個引數是要呼叫的函式或方法的名稱,後面的引數是傳遞給函式或方法的引數。

如果要呼叫的函式是一個全域性函式,直接傳遞函式名即可。

如果要呼叫的方法是一個靜態方法,需要傳遞一個包含類名和方法名的陣列。

如果要呼叫的方法是一個物件的方法,需要傳遞一個包含物件例項和方法名的陣列。

如果要呼叫的函式是一個匿名函式,直接傳遞匿名函式物件即可。

注意: 從 PHP 7.0.0 版本開始,建議使用可變函式呼叫語法代替 call_user_func() 函式,語法更簡潔,效能更好。例如以下示例等同於示例1:

$sayHello = "sayHello"; $sayHello("John"); // 輸出: Hello, John

補充糾錯
熱門PHP函式
分享連結