Re: Bug #10829: call_user_func() - Bug
| From: | Sterling Hughes | 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: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 ;) -SterlingOn Sat, May 12, 2001 at 02:23:44PM -0000, stefan@livieratos.com wrote: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.From: stefan@livieratos.comOperating system: Win2K, SolarisPHP version: 4.0.5 PHP Bug Type: Scripting Engine problemBug 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.