博主信息
博文 21
粉丝 0
评论 0
访问量 30093
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php----函数的封装及参数长度的控制-----2019.09.28
刂艹亻的博客
原创
1081人浏览过

php----函数的封装及参数长度的控制

自定义封装的函数,可指定形参的数量,也可不指定数量以及指定数量后扩展数量等

1.未指定数量可使用内置函数 func_get_args() 来获取实际传入的实参的值组成的数组,以及获取他们的数量用 func_num_args() 

2.还有php7+新的特性 剩余参数,定义方式和实际运用来处理传入参数的乘积如下:

所谓的剩余参数是指;在传入的实参数量超过了所指定的数量后,会将形参指定数量以外的值打包到一个数组中

实例

<?php
header("Content-Type: text/html;charset=utf-8");
// 不固定参数数量,变长参数
function product_arr()
{
    //返回实参的数量
    // $argNum = func_num_args();

    //返回真是参数的值组成的数组
    $argNum = func_get_args();
    // $argNum = func_get_arg(0);

    // 普通方法实现乘积
    $product_num = 1;
    foreach ($argNum as $key => $value) {
        $product_num *= $value;
        if ($key + 1 === count($argNum)) {
            return $product_num;
        }
    }

    //利用php内置函数实现
    // $product_num = array_product($argNum);
    // return $product_num;
}
//  print_r(product_arr(range(1,10,1)));//362880
// print_r(product_arr(1,2,3));//6

//变长参数:剩余参数,php7+
function product_arr2(...$argNum)
{

    //普通方法实现
    // $product_num=1;
    // foreach($argNum as $key=>$value){
    //     $product_num *= $value;
    //     if($key+1 === count($argNum)){
    //         return $product_num;
    //     }
    // }

    //利用php内置函数实现
    // $product_num = array_product($argNum);
    // return $product_num;


}

// print_r(product_arr2(range(1,10,1),range(1,10,1)));//362880
print_r(product_arr2(1, 2, 3));

//变长参数2,用来扩展参数

function product_arr3($a, $b, ...$c)
{
    if (!empty($c)) {
        array_push($c, $a, $b);
        //普通方法实现
        // $product_num = 1;
        // foreach ($c as $key => $value) {
        //     $product_num *= $value;
        //     if ($key + 1 === count($c)) {
        //         return $product_num;
        //     }
        // }

        //利用php内置函数实现
        $product_num = array_product($c);
        return $product_num;
    } else {
        return $a * $b;
    }
}
print_r(product_arr3(1, 2, 3,5));

运行实例 »

点击 "运行实例" 按钮查看在线实例





批改状态:合格

老师批语:写得不错
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学