Re: Bug #10829: call_user_func() - Bug

From: Date: Sat, 12 May 2001 20:14:22 +0000
Subject: Re: Bug #10829: call_user_func() - Bug
References: 1 2 3  Groups: php.dev 
Request: Send a blank email to php-dev+get-55038@lists.php.net to get a copy of this message
Sterling Hughes wrote:
Thies C. Arntzen wrote:
On Sat, May 12, 2001 at 02:23:44PM -0000, stefan@livieratos.com wrote:
From:             stefan@livieratos.com
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.
Never mind, I take this back ;))) call_user_func & call_user_func_array() got confused in head. Take a look at the call_user_*() thread ;) -Sterling

« previous php.dev (#55038) next »