为什么func_num_args不能成为一个参数?

时间:2012-02-23 03:26:17

标签: php

考虑以下示例:

// does not work
foo( func_num_args() );

// works
$args = func_num_args();
foo( $args );

为什么前者失败而后者失败?

1 个答案:

答案 0 :(得分:5)

  

注意:

     

因为此功能取决于当前范围来确定   参数详细信息,不能用作函数参数   5.3.0之前的版本。如果必须传递此值,则结果   应该分配给变量,并且应该传递该变量。

     

http://php.net/func_num_args

换句话说:因为这个函数在内部工作的方式。当运行时在常规函数体内并且它正在计算表达式以用作另一个函数的参数时,运行时处于不同的状态。这在5.3中已经改变。