Differenza nel comportmento di func_num_args, func_get_arg e func_get_args da php 5.2 a 5.3

Ho visto il manuale PHP. Ma non capisco la differenza di comportmento tra la versione precedente e le versioni successive di PHP. Non capisco questa affermazione:

Poiché questa function dipende dall'ambito corrente per determinare i dettagli dei parametri, non può essere utilizzata come parametro di function nelle versioni precedenti alla 5.3.0. Se questo valore deve essere passato, i risultati dovrebbero essere assegnati a una variabile e tale variabile deve essere passata.

Se si desidera passare il risultato di una di queste funzioni a un'altra function o metodo, nelle versioni di PHP precedenti alla 5.3 è necessario prima assegnare il risultato a una variabile.

function some_func() { $args = func_get_args(); some_other_func($args); } 

Questa limitazione è stata rimossa in PHP 5.3 e ora puoi passare direttamente il risultato.

 function some_func() { some_other_func(func_get_args()); } 

Per quanto riguarda il motivo per cui questa limitazione esisteva, forse qualcuno con una conoscenza più approfondita degli interni di PHP può darti una risposta più completa.

Significa che non è valido in 5.2:

 function foo() { $arrays = arrays_map('strtolower', func_get_args()); } foo('BAR', 'BAZ'); 

Si interromperà con un errore fatale:

PHP Errore irreversibile: func_get_args (): non può essere utilizzato come parametro di function

Tuttavia in 5.3, è un codice valido.