Maison > développement back-end > tutoriel php > call_user_func_array传参有关问题

call_user_func_array传参有关问题

WBOY
Libérer: 2016-06-13 11:56:27
original
976 Les gens l'ont consulté

call_user_func_array传参问题

<?php<br />function a() {<br />    $p['asdf'] = '123';<br />    $p['dfd'] = 234;<br />    $p['hj3'] = 'fdg';<br />    call_user_func_array('b', $p);<br />}<br /><br />function b($p) {<br />    $p2 = func_get_args();<br />    var_dump($p2);<br />    var_dump($p);<br />}<br /><br />a();<br />?>
Copier après la connexion

会输出下面两行:
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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal