php中的func_num_args、func_get_arg与func_get_args函数

php中的func_num_args、func_get_arg与func_get_args函数

https://www.cnblogs.com/xiaochaohuashengmi/archive/2011/09/21/2183157.html

php的的func_num_args、func_get_arg和func_get_args都是返回函数实参相关的函数。

func_num_args实参个数;

func_get_arg:返回某一个实参,必须事实参数组的索引;

func_get_args:返回实参数组;

<php

function test(){

   echo func_num_args();

   print_r(func_get_args());

   print_r(func_get_arg(1));

}

test(1);

test(1,2);

test(1,2,3);

?>

复制代码

输出:

复制代码



Array ( [0] => 1) 


Array( [0] => 1 [1] => 2) 


Array( [0] => 1 [1] => 2 [2] => 3) 

复制代码

 func_num_args函数功能– 返回传递到函数的参数数目,其语法如下 : int func_num_args (void )

说明 : 返回传递到目前定义函数的参数数目。如果是从函数定义的外面来呼叫此函数,则func_get_arg( )将会产生警告。

func_num_args( )可以用来结合func_get_arg( )func_get_args( )来允许使用者定义的函式接受variable-length参数列表。其中,func_get_arg( )从参数列表返回项目,其语法:int func_get_arg (int arg_num),传回定义函数的参数列表的第arg_num个参数,其参数从0开始。且函数定义的外面来呼叫此函数会产生警告;并且当arg_num大于函数实际传递的参数数目时亦会产生警告并返回FALSE。func_get_args()函数和func_get_arg()函数的区别在于,func_get_args()函数传回一数组,数组的各个元素相当于是目前使用者定义函式的参数列的数目。

在我们构建PHP类的时候,灵活使用这三个函数,可以起到非常理想的效果,例如外面在创建PHP和MYSQL链接的类时,可以书写如下代码:

 
<?php


class mydb{

    private $user;
    private $pass;
    private $host;
    private $db;

    public function __construct(){

    $num_args=func_num_args();
    if($num_args>0){

    $args=func_get_args();
    $this->host=$args[0];
    $this->user=$args[1];
    $this->pass=$args[2];
    this->connect();
    }
}
…………省略…………
?>

 

 
<?php

function foo() {

    $numargs = func_num_args();

    echo “Number of arguments: $numargs<br>\n”;

    if ($numargs >= 2) {

        echo “Second argument is: ” . func_get_arg (1) . “<br>\n”;

    }

    $arg_list = func_get_args();

    for ($i = 0; $i < $numargs; $i++) {

        echo “Argument $i is: ” . $arg_list[$i] . “<br>\n”;

    }

}

foo (1, 2, 3);

?>

 

func_get_args( )可以用来结合func_num_args( )和func_get_arg( )來允许使用者定义的函式接受variable-length参数列表。

注意 : 此函式是PHP4中新增的函式

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112752.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • S3C2440C语言点灯[通俗易懂]

    S3C2440C语言点灯[通俗易懂]第一代程序员使用机器码第二代程序员使用汇编第三代程序员使用C语言C语言相较于汇编和机器码是一个更高级的语言,我们使用的技术也应该与时俱进之前控制寄存器是配置GPFCON和GPFDAT寄存器,通过地址访问,所以可以用C语言来进行对地址的访问。GPFCON——0x5600,0050GPFDAT——0x5600,0054目录S3C2440芯片手册导读用指针表示S3C2440芯片手册导读对于GPFCON,只用到了16位对于GPFDAT,只用到了8位我们仍然可以以32位,就是4字节的

    2022年6月13日
    25
  • ssh2登录方式_ssh端口号

    ssh2登录方式_ssh端口号SSH2登录:我们确认一下能否不输入口令就用ssh登录localhost:$sshlocalhost若是不输入口令就无法用ssh登陆localhost,执行下面的指令:$rm-fr~/.ss

    2022年8月4日
    7
  • Oracle NUMBER类型细讲

    Oracle NUMBER类型细讲1>.NUMBER类型细讲:Oraclenumberdatatype语法:NUMBER[(precision[,scale])]简称:precision–>p     scale    –>sNUMBER(p,s)范围:1保存数据范围:-1.0e-130保存在机器内部的范围:1~22bytes有效为:从左边第一个不为0的数算起的位数。s的情况:s>0  

    2022年7月24日
    10
  • HD251HJ_HB5082

    HD251HJ_HB5082原题链接描述Givenasequence1,2,3,……N,yourjobistocalculateallthepossiblesub-sequencesthatthesumofthesub-sequenceisM.输入Inputcontainsmultipletestcases.eachcasecontainstwoint…

    2022年10月2日
    1
  • 数据库中间件介绍_数据中间件

    数据库中间件介绍_数据中间件文章目录1、Cobar2、Mycat3、OneProxy4、kingshard5、Vitess6、Atlas7、MaxScale8、MySQLRoute9、ShardingSpere(Sharding-JDBC)10、DRDS1、CobarCobar属于阿进而B2B事业群,始于2008年,在阿里服役年多,接管3000+个MySql数据库的schema,集群日处理在线SQL请求50亿次以上。由于Cobar发起人离职,Cobar停止维护。2、Mycat开源社区在阿里Cobar基础上进行

    2025年7月8日
    3
  • 01.分布式文件系统FastDFS

    01.分布式文件系统FastDFS

    2021年7月12日
    87

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号