在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP/ php 在不知道變量參數(shù)的情況下,實現(xiàn)調(diào)用想要順序

php 在不知道變量參數(shù)的情況下,實現(xiàn)調(diào)用想要順序

class Test
{
    public function A ($a, $b, $c)
    {
    }
}
$a =1;
$b =2;
$c =3;

如何實現(xiàn) 調(diào)用 b 方法時:

b($a,$b,$c)
b($b,$a,$c)

就是說在不知道變量是什么值的時候,實現(xiàn)賦值,調(diào)用:

b(1,2,3)
b(2,1,3)

換一個說法就是:
如何使用array('b'=>2, 'a'=>1, 'c'=>3),對b 方法進行調(diào)用,賦值

補充:
就是說,我想要實現(xiàn)

b(1,2,3)
b(2,1,3)

這樣的結(jié)果,但是我并不知道哪個是$a,哪個是$b,哪個是$c

回答
編輯回答
萢萢糖

call_user_func($functionName, $arg);

2017年3月11日 19:39
編輯回答
祈歡

extract函數(shù)是不是你想要的?

2017年3月21日 06:59
編輯回答
汐顏

不知道參數(shù),這個其實可以用反射類relation來搞定

// 其中Test為類名
$ref = new ReflectionClass('Test');
// A為類下面的方法名
$method = $ref->getMethod('A');
// 開始傳遞參數(shù),其中vars為傳遞的參數(shù)集合.
$result = $method->invokeArgs(new Test(),$vars)

這個就是反射.詳細請查閱文檔Reflection
當(dāng)然這個是類的調(diào)用,如果是單純的方法,請使用ReflectionFunction,
請根據(jù)具體的實例來new具體的reflection

2018年3月16日 13:18
編輯回答
薔薇花

問題是否可以轉(zhuǎn)換為:當(dāng)參數(shù)列表組成一個數(shù)組時,如何利用此數(shù)組調(diào)用指定方法?
答:利用 call_user_func_array
例如:

$arr = array(
    'a' => 1,
    'b' => 2,
    'c' => 3,
);
function test_for_call($a, $b, $c)
{
    return $a + $b + $c;
}

// 進行題中的調(diào)用
call_user_func_array('test_for_call', $arr); // 返回 6

參考:call_user_func_array

2017年11月27日 11:56