Я видел руководство по PHP. Но я не понимаю разницы в поведении между более ранней версией и более поздними версиями PHP. Я не понимаю этого утверждения:
Поскольку эта функция зависит от текущей области для определения параметров параметра, она не может использоваться как параметр функции в версиях до 5.3.0. Если это значение должно быть передано, результаты должны быть назначены переменной, и эта переменная должна быть передана.
Если вы хотите передать результат одной из этих функций другой функции или методу, в версиях PHP до 5.3 вам нужно было сначала присвоить результат переменной.
function some_func() { $args = func_get_args(); some_other_func($args); }
Это ограничение было удалено в PHP 5.3, и теперь вы можете передать результат напрямую.
function some_func() { some_other_func(func_get_args()); }
Что касается того, почему это ограничение существует в первую очередь, возможно, кто-то с более глубоким пониманием внутренних компонентов PHP может дать вам более полный ответ.
Это означает, что это неверно в 5.2:
function foo() { $array = array_map('strtolower', func_get_args()); } foo('BAR', 'BAZ');
Он будет прерван с Неустранимая ошибка:
PHP Неустранимая ошибка: func_get_args (): Не может использоваться как параметр функции
Однако в 5.3 это действительный код.