Edit report at https://bugs.php.net/bug.php?id=50945&edit=1
ID: 50945 Updated by: [email protected] Reported by: robert at binalan dot com Summary: [PATCH] func_get_args(offset=0) -Status: Open +Status: Wont fix Type: Feature/Change Request Package: *General Issues Operating System: FreeBSD PHP Version: 5.2.12 Block user comment: N Private report: N New Comment: You can do this in userspace right now with array_slice(), as has been pointed out. No need to complicate the implementation in PHP. Previous Comments: ------------------------------------------------------------------------ [2012-03-31 05:32:41] robert at binalan dot com I've posted this over two years ago. Nice someone still replies to it. Changes often goes slow. I mean we have to wait till >= 5.3 so func_get_args() is finally able to be used as a function argument. Which I think is ridiculous by the way. I still believe an offset argument is well at place in func_get args(), as part of function handling functions. I hope and wonder if this suggestion is considered by PHP. But knowing the speed in which suggestions for enhancements will make it to the surface, it would probably take that extra beneficial planet alignment again for having that briliant moment in which the (damn) offset param is added. That alignment should be there again somewhere around PHP 8.5 in 2020... so hang in there guys! ;-) ------------------------------------------------------------------------ [2012-03-31 03:19:43] phristen at yahoo dot com Exactly, array_slice is what you wanna do. Which is why it would probably be best to add 2 optional parameters to func_get_args, and not just one. So it will behave exactly like array_slice. ------------------------------------------------------------------------ [2010-08-28 14:29:48] + at ni-po dot com @kwilson: Maybe this is a reason why he doesn't like to use array_shift: You already used it wrong! To make it work you would need to write: $data = func_get_args(); array_shift($data); array_shift($data); Better use array_slice: $data = array_slice(func_get_args(), 2); (This only works as of PHP 5.3, in PHP 5.2 you need to write: $data = func_get_args(); $data = array_slice($data, 2);.) I do support the introduction of this additional parameter. It is annoying to always array_shift / array_slice some stuff from the arguments ;) ------------------------------------------------------------------------ [2010-03-06 12:50:28] [email protected] The following patch has been added/updated: Patch Name: func-get-args-with-offset Revision: 1267876228 URL: http://bugs.php.net/patch-display.php?bug=50945&patch=func-get-args-with-offset&revision=1267876228&display=1 ------------------------------------------------------------------------ [2010-02-16 21:30:46] kwilson at shuttlebox dot net Why wouldn't you just use array_shift? The PHP folks don't seem to like to implement features when there is already an approach to accomplish the task in few steps: function moduleNotify($module, $message/*, ...args*/) { $data = array_shift(array_shift(func_get_args())); switch($module){ case 'Database': list($host, $user, $pass, $base) = $data; break; case 'UserLogin': list($user, $pass, $iris, $lang) = $data; break; } ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=50945 -- Edit this bug report at https://bugs.php.net/bug.php?id=50945&edit=1
