Как известно, при насильной передаче аргумента по ссылке в функцию, которая ожидает передачи по значению, пыха ругается (если в php.ini allow_call_time_pass_reference = off)..
[mechanic@mechanic trunk]$ php -r ' function a($inp) { echo $inp; } $b = "123"; a(&$b);'
Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of a(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in Command line code on line 1
123
однако любопытно, что тот же вызов, выполненный ректально через call_user_func_array() такого не дает
[mechanic@mechanic trunk]$ php -r ' function a($inp) { echo $inp; } $b = "123"; call_user_func_array("a", array(&$b));'
123