瞭解php中call_user_func 與 call_user_func_array的使用及區別

一:方法解釋php

call_user_func:把第一個參數做爲回調函數進行調用,其他參數做爲回調函數的參數數組

call_user_func_array:把第一個參數做爲回調函數進行調用,第二個參數傳入數組,將數組中的值做爲回調函數的參數框架

二:call_user_func和call_user_func_array簡單介紹函數

1:第一個參數傳入方法名this

例:code

(1)原生php中使用:回調函數

function test($test1, $test2) {
return $test1 . $test2;
}
echo call_user_func('test', 'a','b');//輸出結果爲ab
echo call_user_func_array('test', ['c', 'd']);//輸出結果爲cd

(2)框架中使用:io

public function test($test1,$test2)
{
    return $test1 . $test2;
}
echo call_user_func(array($this, 'test'), 'a', 'b');//輸出結果爲ab
echo call_user_func_array(array($this, 'test'), ['a', 'b']);//輸出結果爲cd

2:第一個參數做爲匿名函數function

原生和框架中使用方式相同:class

echo call_user_func(function ($test){return $test;}, 1);//輸出結果爲1
echo call_user_func_array(function ($test){return $test;}, [1]);//輸出結果爲1

3:第一個參數調用類中的方法

class Test {
static function test1($test){
return $test;
}
}

(1):原生php調用:

echo call_user_func(array('test', 'test1'), 1);//輸出結果爲1
echo call_user_func_array(array('test', 'test1'), [1]);//輸出結果爲1

(2):框架中調用:

echo call_user_func(array(new Test(), 'test'), 1);//輸出結果爲1
echo call_user_func_array(array(new Test(), 'test'), [1]);//輸出結果爲1
相關文章
相關標籤/搜索