call_user_func_array傳參問題

來源:互聯網
上載者:User
 

會輸出下面兩行:
array(3) { [0]=> string(3) "123" [1]=> int(234) [2]=> string(3) "fdg" }
string(3) "123"

為什麼輸出$p時不是整個數組,而只是string(3) "123"?我看手冊是這麼寫的:
mixed call_user_func_array ( callable $callback , array $param_arr )
param_arr:The parameters to be passed to the callback, as an indexed array.
就是說會傳遞關聯陣列。


回複討論(解決方案)

對於你的代碼
call_user_func_array('b', $p);
實際執行的是
b('123', 123, 'fdg')
即向函數 b 傳遞了 3 個參數

而 function b($p) 只聲明了一個形參 $p
所以在函數中可以直接存取到他 var_dump($p);//123

剛剛看了其他例子,明白了。感謝老徐

function a() {
$p['asdf'] = '123';
$p['dfd'] = 234;
$p['hj3'] = 'fdg';
call_user_func_array('b', array($p));
}

function b($p) {
$p2 = func_get_args();
var_dump($p2);
var_dump($p);
}

a();
?>

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.