91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中的call_user_func()與call_user_func_array()函數是什么

發布時間:2020-10-30 10:37:54 來源:億速云 閱讀:166 作者:小新 欄目:編程語言

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

call_user_func:把一個參數作為回調函數調用

用法說明:

call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] ) : mixed

參數說明:

第一個參數$callback作為回調函數,其它參數都是回調函數的參數。

$parameter:傳入回調$callback函數的參數,這里的參數注意不能引用傳遞。

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

//先引用,后執行
function _call($call){
    echo $call++.'<br/>';
    echo $call++.'<br/>';
    return $call;
}
$rs = call_user_func('_call',1);
var_dump($rs);

//結果
//1
//2
//int(3)

先執行,后引用

$arg = 1;
call_user_func(function ($call){
    echo ++$call.'<br/>';
    echo ++$call.'<br/>';
},$arg);

//結果為2,3

回調函數不傳值,通過func_get_arg和func_get_args獲取參數

$argOne = 1;
$argTwo = 2;
call_user_func(function (){
    //獲取第幾個參數
    $arg = func_get_arg(0);
    var_dump($arg);
    echo '<br/>';
    //獲取所有的參數,并以數組的形式返回
    $args = func_get_args();
    var_dump($args);
    //獲取參數個數
    $argNum = func_num_args();
    echo "<br/>";
    var_dump($argNum);
},$argOne,$argTwo);

//結果為
int(1) 
array(2) { [0]=> int(1) [1]=> int(2) } 
int(2)

調用類方法:

調用類中的靜態方法有兩種形式,而調用public方法第一個參數只能為數組

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/>";
//調用類的靜態方法
var_dump(call_user_func('Func::_One','one'));
echo '<br/>';
var_dump(call_user_func(['Func','_One']));

$num = 4;
$o = new Func;
//調用類普通方法
$return = call_user_func(array($o,'_Two'),$num);
echo '<br/>';
var_dump($return);

結果:
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)

調用有命名空間的類時call_user_func的用法與上面的同理

//調用靜態方法
call_user_func(array(__NAMESPACE__.'\StaticDemo','_One'),100);
call_user_func('App\StaticDemo::_One',200);
//調用public方法
call_user_func(array($obj,'_Two'),2,3,4);  

最后:
和call_user_func函數類似的還有call_user_func_array,call_user_func_array的作用和call_user_func的作用一樣,
不同的是call_user_func用回調函數處理字符,而call_user_func_array用回調處理數組,也就是說call_user_func_array的參數二只能為數組。

感謝各位的閱讀!關于PHP中的call_user_func()與call_user_func_array()函數是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涟水县| 吕梁市| 高碑店市| 吉隆县| 繁昌县| 尤溪县| 新沂市| 青冈县| 邢台市| 吉隆县| 保康县| 巴彦县| 盐亭县| 新闻| 安庆市| 卢氏县| 天水市| 英山县| 留坝县| 天津市| 抚松县| 济宁市| 巴楚县| 宝鸡市| 焉耆| 磐石市| 宿州市| 宜兴市| 武义县| 阳泉市| 庄浪县| 都匀市| 舟山市| 基隆市| 东源县| 专栏| 洪湖市| 广灵县| 东兴市| 鄂托克旗| 吉木萨尔县|