這篇文章給大家分享的是有關(guān)PHP中的call_user_func()與call_user_func_array()函數(shù)是什么的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營理念,通過多達(dá)10年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的營銷推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:成都食品包裝袋等企業(yè),備受客戶贊美。
call_user_func:把一個(gè)參數(shù)作為回調(diào)函數(shù)調(diào)用
用法說明:
call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] ) : mixed
參數(shù)說明:
第一個(gè)參數(shù)$callback作為回調(diào)函數(shù),其它參數(shù)都是回調(diào)函數(shù)的參數(shù)。
$parameter:傳入回調(diào)$callback函數(shù)的參數(shù),這里的參數(shù)注意不能引用傳遞。
下面簡單例子分別說明了在不同情況下使用call_user_func:
//先引用,后執(zhí)行
function _call($call){
echo $call++.'<br/>';
echo $call++.'<br/>';
return $call;
}
$rs = call_user_func('_call',1);
var_dump($rs);
//結(jié)果
//1
//2
//int(3)先執(zhí)行,后引用
$arg = 1;
call_user_func(function ($call){
echo ++$call.'<br/>';
echo ++$call.'<br/>';
},$arg);
//結(jié)果為2,3回調(diào)函數(shù)不傳值,通過func_get_arg和func_get_args獲取參數(shù)
$argOne = 1;
$argTwo = 2;
call_user_func(function (){
//獲取第幾個(gè)參數(shù)
$arg = func_get_arg(0);
var_dump($arg);
echo '<br/>';
//獲取所有的參數(shù),并以數(shù)組的形式返回
$args = func_get_args();
var_dump($args);
//獲取參數(shù)個(gè)數(shù)
$argNum = func_num_args();
echo "<br/>";
var_dump($argNum);
},$argOne,$argTwo);
//結(jié)果為
int(1)
array(2) { [0]=> int(1) [1]=> int(2) }
int(2)調(diào)用類方法:
調(diào)用類中的靜態(tài)方法有兩種形式,而調(diào)用public方法第一個(gè)參數(shù)只能為數(shù)組
class Func{
static public function _One(){
$str = "THE CLASS NAME IS".__CLASS__." AND CLASS STATIC METHOD IS ".__METHOD__;
$argNum = func_num_args();
if($argNum){
$arg = func_get_arg(0);
return $str.' and argument is '.$arg;
}else{
return $str;
}
}
public function _Two($num){
return $num ? $num + 1 : $num;
}
}
echo "<br/>";
//調(diào)用類的靜態(tài)方法
var_dump(call_user_func('Func::_One','one'));
echo '<br/>';
var_dump(call_user_func(['Func','_One']));
$num = 4;
$o = new Func;
//調(diào)用類普通方法
$return = call_user_func(array($o,'_Two'),$num);
echo '<br/>';
var_dump($return);
結(jié)果:
string(79) "THE CLASS NAME ISFunc AND CLASS STATIC METHOD IS Func::_One and argument is one"
string(59) "THE CLASS NAME ISFunc AND CLASS STATIC METHOD IS Func::_One"
int(5)調(diào)用有命名空間的類時(shí)call_user_func的用法與上面的同理
//調(diào)用靜態(tài)方法
call_user_func(array(__NAMESPACE__.'\StaticDemo','_One'),100);
call_user_func('App\StaticDemo::_One',200);
//調(diào)用public方法
call_user_func(array($obj,'_Two'),2,3,4); 最后:
和call_user_func函數(shù)類似的還有call_user_func_array,call_user_func_array的作用和call_user_func的作用一樣,
不同的是call_user_func用回調(diào)函數(shù)處理字符,而call_user_func_array用回調(diào)處理數(shù)組,也就是說call_user_func_array的參數(shù)二只能為數(shù)組。
感謝各位的閱讀!關(guān)于PHP中的call_user_func()與call_user_func_array()函數(shù)是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
名稱欄目:PHP中的call_user_func()與call_user_func_array()函數(shù)是什么
本文地址:http://www.chinadenli.net/article44/iiiehe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、全網(wǎng)營銷推廣、搜索引擎優(yōu)化、App開發(fā)、網(wǎng)站策劃、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)