Edit report at https://bugs.php.net/bug.php?id=63071&edit=1
ID: 63071 Comment by: maarten at ba dot be Reported by: maarten at ba dot be Summary: func_get_args loses byref information Status: Not a bug Type: Bug Package: Unknown/Other Function Operating System: all PHP Version: 5.3.16 Block user comment: N Private report: N New Comment: "This function returns a copy of the passed arguments only, ..." from the same page. thus an array. it's just that this copied array loses it's byref value for one of the elements in the array... this makes it impossible to have a hook system where you can also modify a parameter because it's byref Previous Comments: ------------------------------------------------------------------------ [2012-09-12 11:15:12] larue...@php.net Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php "Returns an array in which each element is a copy of the corresponding member of the current user-defined function's argument list." http://us2.php.net/manual/en/function.func-get-args.php ------------------------------------------------------------------------ [2012-09-12 11:00:08] maarten at ba dot be Description: ------------ i'm writing code that invokes "hooks" with byref parameters. but the generalized hook functions lose the byref information due to func_get_args being a copy (but not exact), thus call_user_func_array() (which needs to have references in it's array) can't work. see shortened example below: Test script: --------------- $foo = "foo"; $bar = "bar"; function func_a(&$a, $b) { $a = $b; }; function c() { $args = func_get_args(); call_user_func_array("func_a", $args); }; c(&$foo, $bar); var_dump($foo); Expected result: ---------------- i expected for $foo to have 'bar' Actual result: -------------- $foo is still 'foo', and a warning is generated ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=63071&edit=1