ID: 47693 Updated by: scott...@php.net Reported By: joffrey at coolhaven dot info -Status: Open +Status: Bogus Bug Type: Scripting Engine problem Operating System: Linux PHP Version: 5.3CVS-2009-03-17 (CVS) New Comment:
When you call func_get_args() it can't possibly know which ones are meant to be referenced and which aren't because the function definition is what indicates the reference. Previous Comments: ------------------------------------------------------------------------ [2009-03-17 16:55:40] joffrey at coolhaven dot info All of a sudden I realized a catch 22: you know which parameters are call-by-reference because you must define them in your function. This makes the use of referenced values in func_get_args() not essential but practical. Not only for the sake of completeness but also useful in combination with call_user_func_array(). ------------------------------------------------------------------------ [2009-03-17 16:43:05] joffrey at coolhaven dot info Description: ------------ Calling func_get_args() returns copies of the arguments of the function. It would be more useful to return referenced values if those are defined in the function parameters. This is useful when using func_get_args() for function parameter overloading and calling other functions from a function using call_user_func_array(). A bit off topic: I see var_dump is aware if the variable is a referenced one. Would it be possible to implement a 'is_reference()' function now? Reproduce code: --------------- $a = 1; $b = 2; $c = "3"; function f($a, &$b, &$c) { var_dump(func_get_args()); } var_dump(array($a, &$b, &$c)); f($a, $b, $c); Expected result: ---------------- array(3) { [0]=> int(1) [1]=> ∫(2) [2]=> &string(1) "3" } array(3) { [0]=> int(1) [1]=> ∫(2) [2]=> &string(1) "3" } Actual result: -------------- array(3) { [0]=> int(1) [1]=> ∫(2) [2]=> &string(1) "3" } array(3) { [0]=> int(1) [1]=> int(2) [2]=> string(1) "3" } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=47693&edit=1