批改状态:合格
老师批语:写得不错
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));点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号