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]