call_user_func — 調用一個存在的函數
call_user_func_array — 調用一個函數並以數組形式的傳參
//以上兩個函數比較相似,只是傳入參數的方式不同而已。
function phpha_com($a, $b){
echo $a + $b;
}
call_user_func('phpha_com', 1, 2); // 3
call_user_func_array('phpha_com', array(1, 2)); // 3
//另外如果調用類中的方法,則以數組形式:
class phpha{
public function phpha_com($a, $b){
echo $a + $b;
}
}
call_user_func(array('phpha', 'phpha_com'), 1, 2); // 3
call_user_func_array(array('phpha', 'phpha_com'), array(1, 2)); // 3
create_function — 創建一個匿名函數
func_get_arg — 獲取函數中某個參數的值
func_get_args — 獲取函數的所有參數並組成數組
func_num_args — 獲取一個函數的參數個數
function_exists — 判定一個函數是否存在
// phpha_func.php
<?php
function phpha($a, $b){
echo $a + $b;
}
?>
// test.php
<?php
if( ! function_exists('phpha')){
include 'phpha_func.php';
}
phpha(1, 2); // 3
?>
get_defined_functions — 可以獲取所有的PHP函數和自定義的函數
<?php
var_dump(get_defined_functions());
?>
register_shutdown_function — 注冊一個頁面載入完成後運行的函數
register_shutdown_function 執行機制是:PHP把要調用的函數調入內存。當頁面所有PHP語句都執行完成時,再調用此 函數。注意,在這個時候從內存中調用,不是從PHP頁面中調用,所以上面的例子不能使用相對路徑,因為PHP已經當原來的頁面不存在了。就沒有什麼相對路徑可言。
注意:register_shutdown_function 是指在執行完所有PHP語句後再調用函數,不要理解成客戶端關閉流浏覽器頁面時調用函數。
可以這樣理解調用條件:
1、當頁面被用戶強制停止時
2、當程序代碼運行超時時
3、當PHP代碼執行完成時
【天涯注】可以用來做PHP計劃任務,當然更好的方法是交給linux服務器來處理,不過因使用虛擬主機而沒有服務器權限的用戶可以嘗試。
register_tick_function — 注冊一個按要求調用的函數
unregister_tick_function — 取消一個按要求調用的函數