Разница в поведении func_num_args, func_get_arg и func_get_args от php 5.2 до 5.3

Я видел руководство по 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 это действительный код.