Req #17207 [Com]: call_user_func_array does not bind array keys to params
Edit report at https://bugs.php.net/bug.php?id=17207&edit=1
ID: 17207
Comment by: levim@php.net
Reported by: rcarmo at accao dot net
Summary: call_user_func_array does not bind array keys to
params
Status: Open
Type: Feature/Change Request
Package: Feature/Change Request
Operating System: Any
PHP Version: 4.1.2
Block user comment: N
Private report: N
New Comment:
This is similar to the RFC for named parameters: https://wiki.php.net/rfc/named_params
Previous Comments:
------------------------------------------------------------------------
[2002-05-14 09:29:02] rcarmo at accao dot net
Thanks. This would be extremely useful for XML-RPC/SOAP stuff with optional parameters (that have to
be validated down at the actual function call level).
Since there is no way to actually get a valid argument list on the function BEFORE doing
call_user_func_array, I'm getting around it with stuff like this hideous kludge INSIDE the
actual function:
if( func_num_args() < 7 )
return new CFault( "400", "Client", "Incorrect number of method
arguments", $php_errormsg );
------------------------------------------------------------------------
[2002-05-14 08:53:55] derick@php.net
This is not supposed to work at all, I'm making this a feature request.
Derick
------------------------------------------------------------------------
[2002-05-14 08:50:30] rcarmo at accao dot net
When calling a function with call_user_func_array, if one of the parameters is not set, the trailing
hash values are assigned to the wrong parameters.
function test( $a, $b, $c ) {
echo "|$a:$b:$c|";
}
$aParams = array( "a" => 1, "c" => 3 );
call_user_func_array( "test", $aParams );
The output I get is
|1:3:|
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=17207&edit=1
Thread (6 messages)