Thies C. Arntzen wrote:

> On Sat, May 12, 2001 at 02:23:44PM -0000, [EMAIL PROTECTED] wrote:
> 
>>From:             [EMAIL PROTECTED]
>>Operating system: Win2K, Solaris
>>PHP version:      4.0.5
>>PHP Bug Type:     Scripting Engine problem
>>Bug description:  call_user_func() - Bug
>>
>>Hi,
>>
>>I have found the following bug with the function call_user_func():
>>
>>If the user function you are trying to call with 'call_user_func' requires any of 
>its parameters to be passed by reference, PHP issues a warning stating that the 
>function doesn't exist.
>>
>>Example:
>>
>><?php
>>function testme(&$param) {
>> var_dump($param);
>>}
>>
>>$func = "testme";
>>$param = array(1, 2);
>>
>>call_user_func($func, $param);
>>
>>?>
>>
>>Result:
>>
>><br>
>><b>Warning</b>:  Unable to call testme() - function does not exist in <b>t.php</b> 
>on line <b>1</b><br>
>>
> 
>     if you take out the & in the testme argument list it works -
>     even weirder.
> 


Actually, it doesn't seem that wierd to me ;)

the call_user_func() expects an array of parameters, therefore, the 
correct code would look like:

$func = "testme";
$param = array(1, 2);

call_user_func($func, array($param));

But instead the code passes a constant value "1" to the first argument, 
and "1" cannot be passed by reference.  The error generated is kinda a 
bug, call_user_func() should emit a more general error message, but 
otherwise its not a real bug.

-Sterling






-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to