在你引進某個類文件的情況下,想調用這個類文件的時call_user_func_array函數,下面根據參數不同,貼兩個實例:
<?php $func = function($arg1, $arg2) { return $arg1 * $arg2; }; var_dump(call_user_func_array($func, array(2, 4))); /* As of PHP 5.0 */ ?>
將輸出:
int(8) [1]
<? Class ClassA { function bc($b, $c) { $bc = $b + $c; echo $bc; } } call_user_func_array(array('ClassA','bc'), array("111", "222")); //显示 333 ?>
第一個參數:類別名,函數。第二個函數:傳入參數
或許你會這樣問:call_user_func_array這個函數在什麼情況下用?當調用某個函數時,直接new調用就行了,不是多此一舉嗎?
call_user_func_array和new 類別名稱不同的差異在於:all_user_func_array的第一個參數為array('類別名稱','方法名稱')的話,系統會自動為該類別建立物件來直行方法,但卻不會執行__construct建構方法,相當於呼叫靜態方法類別名稱::函數名稱(參數)調用,而new 類別名稱的時候,會先執行建構子。