2013-10-06 46 views
-1
$name = func_get_arg(func_get_args); 

我试图得到我的PHP函数的最后一个参数。但为什么我的功能不允许输入?

,而不是给我的最后一个参数,我得到这两个错误:

Notice: Use of undefined constant func_get_args - assumed 'func_get_args' 

Warning: func_get_arg() expects parameter 1 to be long, string given 

有人能解释我为什么会这样,我该如何解决?

+0

PHP文档很棒['func_get_arg()'](http://php.net/manual/en/function.func-get-arg.php) – pNre

+0

代码没有任何意义...?! func_get_args应该是什么? – deceze

+0

据我了解func_get_args回传参数的数量。所以一个可能的结果会是4.噢 - 我想我找到了我的麻烦。虽然测试我混淆了函数本身。 – CodeShark

回答

2

您试图将函数名称作为参数传递给func_get_arg()。这将永远不会在PHP中工作。

使用此:

$arg = func_get_arg(func_num_args() -1); 

,或者作为一种替代方案:

$arg = array_pop(func_get_args()); 
+0

当我在我自己的代码中看到我的错误(我测试了很多,所以我没有看到我尝试使用'func_get_args'而不是'func_num_args'。我很好奇,为什么我需要减少一个数字? – CodeShark

+0

,因为PHP中的数组索引由'0'开始。意义:'array('foo')'计数为'1',但您需要访问元素'0'..这就是为什么'-1' – hek2mgl

1

可以使用获得最后一个参数

<?php 
function foo() 
{ 
    $numargs = func_num_args(); 

    $arg_list = func_get_args(); 

    echo "Last argument: " . $arg_list[$numargs-1]; 
} 

foo(1, 2, 3); 
?> 
0

// This will return last argument passed to the function 
$lastArgument = func_get_arg(func_num_args()-1); 
相关问题