php中func_num_args(),func_get_arg(),func_get_args()的区别

[复制链接]
查看11 | 回复2 | 2011-8-19 07:21:11 | 显示全部楼层 |阅读模式
回复

使用道具 举报

千问 | 2011-8-19 07:21:11 | 显示全部楼层
func_num_args()这个函数返回的是当前函数的参数数量返回的是数字func_get_arg()函数返回的是指定位置的参数的值func_get_args()这个函数返回的是包含当前函数所有参数的一个数组3个函数所返回的对象都不一样你可以参考一下PHP函数手册里面有更详细的解释和例子希望对您有所帮助!
回复

使用道具 举报

千问 | 2011-8-19 07:21:11 | 显示全部楼层
PHPfunc_num_args与func_get_argsfunc_num_args函数功能–返回传递到函数的参数数目,其语法如下:intfunc_num_args(void)。说明:返回传递到目前定义函数的参数数目。如果是从函数定义的外面来呼叫此函数,则func_get_arg()将会产生警告。func_num_args()可以用来结合func_get_arg()和func_get_args()来允许使用者定义的函式接受variable-length参数列表。其中,func_get_arg()从参数列表返回项目,其语法:intfunc_get_arg(intarg_num),传回定义函数的参数列表的第arg_num个参数,其参数从0开始。且函数定义的外面来呼叫此函数会产生警告;并且当arg_num大于函数实际传递的参数数目时亦会产生警告并返回FALSE。func_get_args()函数和func_get_arg()函数的区别在于,func_get_args()函数传回一数组,数组的各个元素相当于是目前使用者定义函式的参数列的数目。在我们构建PHP类的时候,灵活使用这三个函数,可以起到非常理想的效果,例如外面在创建PHP和MYSQL链接的类时,可以书写如下代码:?phpclassmydb{private$user;private$pass;private$host;private$db;publicfunction__construct(){$num_args=func_num_args();if($num_args0){$args=func_get_args();$this-host=$args[0];$this-user=$args[1];$this-pass=$args[2];this-connect();}}…………省略…………?转自:http://www.realure.cn/2008_27.html====================================================?phpfunctionfoo(){$numargs=func_num_args();echo\"Numberofarguments:$numargsbr/n\";if($numargs=2){echo\"Secondargumentis:\".func_get_arg(1).\"br/n\";}$arg_list=func_get_args();for($i=0;$i$numargs;$i){echo\"Argument$iis:\".$arg_list[$i].\"br/n\";}}foo(1,2,3);?func_get_args()可以用来结合func_num_args()和func_get_arg()来允许使用者定义的函式接受variable-length参数列表。注意:此函式是PHP4中新增的函式参考资料:http://www.phpchina.com/html/55/35555-30495.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行