PHP关于函数的参数问题

可能是自己以前写程序太规范了,今天发现个PHP函数参数个数的问题,定义的函数有三个参数,但是使用函数的时候竟然传了四个参数,更意外的是程序运行没有错误,甚至没有警告。于是依靠搜索引擎和PHP文档仔细查看了下。PHP内置了几个关于函数参数的函数。

func_get_arg(int $arg_num)//获取传递的第 $arg_num 个参数,从0开始索引。

func_get_args()//获取传递参数的列表,以二维数组返回。

func_num_args()//返回传递给参数的个数

因为有了上面三个函数,即时定义函数的时候没有定义参数列表。实际调用函数的时候也不会出错,可以通过上面的三个函数接收参数。

function myfun($name, $value='') {
    $args = func_get_args();
    var_dump($args);
    var_dump(func_get_arg(0));
    echo 'Number of arguments is:', func_num_args(), '<br />';
    echo 'I am function<br />';
}

myfun(12, 22, 36);

输出结果为:
E:\website\www\info.php:13:
array (size=3)
  0 => int 12
  1 => int 11
  2 => int 323
E:\website\www\info.php:14:int 12
Number of arguments is:3
I am function

 

尽管如此,还是推荐按更标准的格式定义函数,让使用函数的用户明白各个参数的含义,传递参数的数据类型。

posted @ 2016-10-25 10:57  達達尼亞  阅读(1994)  评论(0编辑  收藏  举报