Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference in behaviour of func_num_args,func_get_arg and func_get_args from php 5.2 to 5.3

Tags:

php

I have seen the PHP manual. But I don't understand the difference in behaviour between the earlier version and the later versions of PHP. I don't understand this statement:

Because this function depends on the current scope to determine parameter details, it cannot be used as a function parameter in versions prior to 5.3.0. If this value must be passed, the results should be assigned to a variable, and that variable should be passed.

like image 697
Someone Avatar asked Feb 12 '11 17:02

Someone


1 Answers

If you wanted to pass the result of one of those functions to another function or a method, in versions of PHP prior to 5.3 you had to first assign the result to a variable.

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

This limitation was removed in PHP 5.3 and you can now pass the result directly.

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

As to why this limitation existed in the first place, perhaps someone with a more thorough understanding of PHP's internals can give you a more complete answer.

like image 74
Alex Barrett Avatar answered Oct 06 '22 00:10

Alex Barrett