麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 語(yǔ)言 > PHP > 正文

淺談PHP中的call_user_func()與call_user_func_array()函數(shù)

2024-09-04 11:49:46
字體:
供稿:網(wǎng)友

本篇文章主要是對(duì)PHP中的call_user_func()與call_user_func_array()函數(shù)的作用以及使用方法做簡(jiǎn)要說明,感興趣的朋友來學(xué)習(xí)一下吧。

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ù)注意不能引用傳遞。

下面簡(jiǎn)單例子分別說明了在不同情況下使用call_user_func:

  1. //先引用,后執(zhí)行 
  2.  
  3. function _call($call){ 
  4.  
  5.     echo $call++.'<br/>'
  6.  
  7.     echo $call++.'<br/>'
  8.  
  9.     return $call
  10.  
  11.  
  12. $rs = call_user_func('_call',1); 
  13.  
  14. var_dump($rs); 
  15.  
  16. //結(jié)果 
  17.  
  18. //1 
  19.  
  20. //2 
  21.  
  22. //int(3) 

先執(zhí)行,后引用

  1. $arg = 1; 
  2.  
  3. call_user_func(function ($call){ 
  4.  
  5.     echo ++$call.'<br/>'
  6.  
  7.     echo ++$call.'<br/>'
  8.  
  9. },$arg); 
  10.  
  11. //結(jié)果為2,3 

回調(diào)函數(shù)不傳值,通過func_get_arg和func_get_args獲取參數(shù)

  1. $argOne = 1; 
  2.  
  3. $argTwo = 2; 
  4.  
  5. call_user_func(function (){ 
  6.  
  7.     //獲取第幾個(gè)參數(shù) 
  8.  
  9.     $arg = func_get_arg(0); 
  10.  
  11.     var_dump($arg); 
  12.  
  13.     echo '<br/>'
  14.  
  15.     //獲取所有的參數(shù),并以數(shù)組的形式返回 
  16.  
  17.     $args = func_get_args(); 
  18.  
  19.     var_dump($args); 
  20.  
  21.     //獲取參數(shù)個(gè)數(shù) 
  22.  
  23.     $argNum = func_num_args(); 
  24.  
  25.     echo "<br/>"
  26.  
  27.     var_dump($argNum); 
  28.  
  29. },$argOne,$argTwo); 
  30.  
  31.  
  32.  
  33. //結(jié)果為 
  34.  
  35. int(1)  
  36.  
  37. array(2) { [0]=> int(1) [1]=> int(2) }  
  38.  
  39. int(2) 

調(diào)用類方法:

調(diào)用類中的靜態(tài)方法有兩種形式,而調(diào)用public方法第一個(gè)參數(shù)只能為數(shù)組

  1. class Func{  
  2.  
  3.     static public function _One(){ 
  4.  
  5.         $str = "THE CLASS NAME IS".__CLASS__." AND CLASS STATIC METHOD IS ".__METHOD__
  6.  
  7.         $argNum = func_num_args(); 
  8.  
  9.         if($argNum){ 
  10.  
  11.             $arg = func_get_arg(0); 
  12.  
  13.             return $str.' and argument is '.$arg
  14.  
  15.         }else
  16.  
  17.             return $str
  18.  
  19.         } 
  20.  
  21.     }    
  22.  
  23.     public function _Two($num){ 
  24.  
  25.         return $num ? $num + 1 : $num
  26.  
  27.     } 
  28.   
  29.  
  30.  
  31. echo "<br/>"
  32.  
  33. //調(diào)用類的靜態(tài)方法 
  34.  
  35. var_dump(call_user_func('Func::_One','one')); 
  36.  
  37. echo '<br/>'
  38.  
  39. var_dump(call_user_func(['Func','_One'])); 
  40.  
  41. $num = 4; 
  42.  
  43. $o = new Func; 
  44.  
  45. //調(diào)用類普通方法 
  46. //Vevb.com 
  47. $return = call_user_func(array($o,'_Two'),$num); 
  48.  
  49. echo '<br/>'
  50.  
  51. 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的用法與上面的同理

  1. //調(diào)用靜態(tài)方法 
  2.  
  3. call_user_func(array(__NAMESPACE__.'/StaticDemo','_One'),100); 
  4.  
  5. call_user_func('App/StaticDemo::_One',200); 
  6.  
  7. //調(diào)用public方法 
  8.  
  9. 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ù)組。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久久电影电视剧免费看 | 爱福利视频网 | 色人阁在线视频 | 中文字幕在线观看1 | 国产精品成人亚洲一区二区 | 久久福利精品 | 黄色一级片在线免费观看 | 久久网综合 | 成人福利在线观看 | 久久久日韩精品一区二区 | 92看片淫黄大片一级 | 超久久| 天天操天天碰 | 亚洲99| 欧美一级美片在线观看免费 | 国产成人av一区二区 | av电影免费看 | 激情小说激情电影 | 在线91视频| 国产91丝袜在线播放 | 国产视频第一区 | japanese xxxxhd | 国色天香综合网 | 毛片在线免费视频 | 久久精品国产99国产精品亚洲 | 欧美成人精品h版在线观看 国产一级淫片在线观看 | 日韩视频一区在线 | 免费在线性爱视频 | 午夜视 | 免费黄色在线电影 | 欧美一级片一区 | 欧洲精品视频在线观看 | 性aaa| 一级黄片毛片免费看 | 日韩美香港a一级毛片 | 欧美成人免费电影 | 爱逼av | 国产一级一级片 | 免费观看高清视频网站 | 激情福利视频 | 91精品久久香蕉国产线看观看 |