php函数之func_get_args()、func_get_arg()与func_num_args()

header('Content-type:text/html;charset=utf-8');

function foo()
{
    $numargs = func_num_args();
    //返回调用函数的传入参数个数,类型是整型
    echo 'Number of arguments: '.$numargs.'<br>';

    if( $numargs >= 2 )
    {
        echo 'Second argument is: '.func_get_arg(1).'<br>';
        //传回定义函数的参数列表的第arg_num个参数,其参数从0开始。且函数定义的外面来呼叫此函数会产生警告;并且当arg_num大于函数实际传递的参数数目时亦会产生警告并返回FALSE    }

    $arg_list = func_get_args();
    //此函数返回一数组,数组的各个元素相当于是目前使用者定义函数的各个参数。如果是从函数定义的外面来呼叫此函数,则func_get_args()将会产生警告。
    for( $i=0;$i<$numargs;$i++ )
    {
        echo 'Argument '.$i.' is: '.$arg_list[$i].'<br>';
    }
}

foo(1,2,3);
//func_num_args()可以用来结合func_get_arg()func_get_args(),来允许使用者定义的函数接受可变长度参数列表。在我们构建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();
        }
    }
}

//求平均值(动态)
function average(){
    return array_sum(func_get_args())/func_num_args();
}
print average(10, 15, 20, 25); // 17.5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值