func_get_args
func_get_args
(PHP 4, PHP 5, PHP 7)
func_get_args - 返回一个包含函数参数列表的数组
描述
array func_get_args ( void )
获取函数参数列表的数组。
该函数可以与func_get_arg()和func_num_args()一起使用,以允许用户定义的函数接受可变长度参数列表。
返回值
返回一个数组,其中每个元素都是当前用户定义函数参数列表的相应成员的副本。
Changelog
版本 | 描述 |
---|---|
5.3.0 | 该功能现在可以用于参数列表中。 |
5.3.0 | 如果通过调用include或require从调用文件中的函数内包含的文件的最外层范围调用此函数,它现在会生成警告并返回FALSE。 |
Errors/Exceptions
如果从用户定义的函数外部调用,则会生成警告。
示例
Example #1 func
_
get
_
args() example
<?php
function foo()
{
$numargs = func_num_args(
echo "Number of arguments: $numargs \n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg(1) . "\n";
}
$arg_list = func_get_args(
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "\n";
}
}
foo(1, 2, 3
?>
上面的例子将输出:
Number of arguments: 3
Second argument is: 2
Argument 0 is: 1
Argument 1 is: 2
Argument 2 is: 3
Example #2 func
_
get
_
args() example before and after PHP 5.3
test.php
<?php
function foo() {
include './fga.inc';
}
foo('First arg', 'Second arg'
?>
fga.inc
<?php
$args = func_get_args(
var_export($args
?>
PHP 5.3之前的输出:
array (
0 => 'First arg',
1 => 'Second arg',
)
在PHP 5.3和更高版本中输出:
Warning: func_get_args(): Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false
Example #3 func
_
get
_
args() example of byref and byval arguments
<?php
function byVal($arg) {
echo 'As passed : ', var_export(func_get_args()), PHP_EOL;
$arg = 'baz';
echo 'After change : ', var_export(func_get_args()), PHP_EOL;
}
function byRef(&$arg) {
echo 'As passed : ', var_export(func_get_args()), PHP_EOL;
$arg = 'baz';
echo 'After change : ', var_export(func_get_args()), PHP_EOL;
}
$arg = 'bar';
byVal($arg
byRef($arg
?>
上述PHP 7输出示例:
As passed : array (
0 => 'bar',
)
After change : array (
0 => 'baz',
)
As passed : array (
0 => 'bar',
)
After change : array (
0 => 'baz',
)
上面的例子在PHP 5中输出:
As passed : array (
0 => 'bar',
)
After change : array (
0 => 'bar',
)
As passed : array (
0 => 'bar',
)
After change : array (
0 => 'baz',
)
笔记
注意
:由于此函数依赖于当前范围来确定参数详细信息,因此它不能在5.3.0之前的版本中用作函数参数。如果必须传递此值,则应将结果分配给一个变量,并且应该传递该变量。
注意
:如果参数是通过引用传递的,则参数的任何更改都会反映在此函数返回的值中。从PHP 7开始,如果参数是按值传递的,那么当前值也会被返回。
注意
:此函数仅返回传递参数的副本,并且不包含默认(未传递)参数。
另请参阅
...
syntax in PHP 5.6+
- func_get_arg()
- func_num_args()
- ReflectionFunctionAbstract::getParameters()
← func_get_arg
func_num_args →