请考虑以下示例:
// does not work
foo( func_num_args() );
// works
$args = func_num_args();
foo( $args );
Run Code Online (Sandbox Code Playgroud)
为什么前者失败而后者失败呢?
注意:
由于此函数取决于当前范围以确定参数详细信息,因此不能将其用作5.3.0之前的版本中的函数参数.如果必须传递此值,则应将结果分配给变量,并且应传递该变量.
换句话说:因为这个函数在内部工作的方式.当运行时在常规函数体内并且它正在计算表达式以用作另一个函数的参数时,运行时处于不同的状态.这在5.3中有所改变.
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |