From: david at grudl dot com Operating system: PHP version: 5.3.1 PHP Bug Type: Class/Object related Bug description: call_user_func_array, __call and references
Description: ------------ The way how call_user_func_array() passes arguments to the function by reference has been broken in PHP versions 5.3.1, 5.2.11, 5.2.12 in conjunction with __call(). See http://php.net/manual/en/function.call-user-func-array.php - Note: Referenced variables in param_arr are passed to the function by a reference, others are passed by a value. In other words, it does not depend on the function signature whether the parameter is passed by a value or by a reference. Reproduce code: --------------- class Test { public function __call($name, $args) { $args[0]++; } } $viaRef = 1; call_user_func_array( array(new Test, 'method'), array(& $viaRef) ); echo $viaRef; Expected result: ---------------- 2 Actual result: -------------- PHP 5.3.1, 5.2.11, 5.2.12 returns â1â, other versions â2â as documented. -- Edit bug report at http://bugs.php.net/?id=50792&edit=1 -- Try a snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=50792&r=trysnapshot52 Try a snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=50792&r=trysnapshot53 Try a snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=50792&r=trysnapshot60 Fixed in SVN: http://bugs.php.net/fix.php?id=50792&r=fixed Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=50792&r=needdocs Fixed in release: http://bugs.php.net/fix.php?id=50792&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=50792&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=50792&r=needscript Try newer version: http://bugs.php.net/fix.php?id=50792&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=50792&r=support Expected behavior: http://bugs.php.net/fix.php?id=50792&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=50792&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=50792&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=50792&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=50792&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=50792&r=dst IIS Stability: http://bugs.php.net/fix.php?id=50792&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=50792&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=50792&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=50792&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=50792&r=mysqlcfg