PHP 函數(shù)call_user_func和call_user_func_array用法詳解
call_user_func函數(shù)是當(dāng)需要?jiǎng)討B(tài)調(diào)用函數(shù)時(shí),才使用的,這個(gè)函數(shù)有兩種用法:
第一種是調(diào)用孤獨(dú)的函數(shù):
function funa($b,$c)
{
echo $b;
echo $c;
}
call_user_func('funa', "111","222");
call_user_func('funa', "333","444");
//顯示 111 222 333 444
//大家有沒(méi)有發(fā)現(xiàn),這個(gè)用法有點(diǎn)像javascript中的call方法,嘿嘿
?>
第二種是調(diào)用類內(nèi)部的函數(shù):
class a {
function b()
{
$args = func_get_args();
$num = func_num_args();
print_r($args);
echo $num;
}
}
call_user_func(array("a", "b"),"111","222");
?>
上面這個(gè)例子,自己運(yùn)行一下看看結(jié)果是什么吧~嘿嘿~提示一下func_get_args()函數(shù)是獲取傳入到函數(shù)中的參數(shù),返回一個(gè)數(shù)組,func_num_args()函數(shù)獲取傳入函數(shù)中的參數(shù)的個(gè)數(shù)。
下面再來(lái)看看call_user_func_array函數(shù)
這個(gè)函數(shù)也是當(dāng)需要?jiǎng)討B(tài)調(diào)用函數(shù)時(shí)用到的,它的用法和call_user_func函數(shù)比較像,只是參數(shù)傳入的是數(shù)組。
function a($b, $c)
{
echo $b;
echo $c;
}
call_user_func_array('a', array("111", "222"));
//顯示 111 222
?>
call_user_func_array函數(shù)也可以調(diào)用類內(nèi)部的方法的
Class ClassA
{
function bc($b, $c) {
$bc = $b + $c;
echo $bc;
}
}
call_user_func_array(array(‘ClassA','bc'), array(“111″, “222″));
//顯示 333
?>
下面再看一個(gè)動(dòng)態(tài)調(diào)用函數(shù)的例子:
function otest1 ($a)
{
echo( '一個(gè)參數(shù)' );
}
function otest2 ( $a, $b)
{
echo( '二個(gè)參數(shù)' );
}
function otest3 ( $a ,$b,$c)
{
echo( '三個(gè)啦' );
}
function otest (){
$args = func_get_args();
$num = func_num_args();
call_user_func_array( 'otest'.$num, $args );
}
otest("11");
otest("11","22");
otest("11","22","33");
?>
- php自定義函數(shù)call_user_func和call_user_func_array詳解
- PHP中call_user_func_array回調(diào)函數(shù)的用法示例
- PHP中call_user_func_array()函數(shù)的用法演示
- php中call_user_func函數(shù)使用注意事項(xiàng)
- 淺析PHP中call user func()函數(shù)及如何使用call user func調(diào)用自定義函數(shù)
- PHP回調(diào)函數(shù)概念與用法實(shí)例分析
- PHP 的異常處理、錯(cuò)誤的拋出及回調(diào)函數(shù)等面向?qū)ο蟮腻e(cuò)誤處理方法
- PHP回調(diào)函數(shù)及匿名函數(shù)概念與用法詳解
- PHP call_user_func和call_user_func_array函數(shù)的簡(jiǎn)單理解與應(yīng)用分析
相關(guān)文章
采用header定義為文件然后readfile下載(隱藏下載地址)
有時(shí)候我們?yōu)榱穗[藏真實(shí)的下載地址,我們通過(guò)采用header定義為文件然后readfile下載,但這樣會(huì)加大服務(wù)器的負(fù)擔(dān),一般不建議下載量比較大的文件2014-01-01PHP+Redis開(kāi)發(fā)的書簽案例實(shí)戰(zhàn)詳解
這篇文章主要介紹了PHP+Redis開(kāi)發(fā)的書簽案例,結(jié)合實(shí)例形式詳細(xì)分析了php結(jié)合redis開(kāi)發(fā)書簽功能的具體步驟及相關(guān)操作技巧,需要的朋友可以參考下2019-07-07PHP開(kāi)發(fā)中的錯(cuò)誤收集,不定期更新。
PHP開(kāi)發(fā)中的錯(cuò)誤收集,不定期更新。 php開(kāi)發(fā)的朋友需要用得到。2011-02-02PHP動(dòng)態(tài)編譯出現(xiàn)Cannot find autoconf的解決方法
這篇文章主要介紹了PHP動(dòng)態(tài)編譯出現(xiàn)Cannot find autoconf的解決方法,是PHP程序設(shè)計(jì)中經(jīng)常會(huì)遇到的問(wèn)題,需要的朋友可以參考下2014-11-11