Correction status:qualified
Teacher's comments:写得不错
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));
点击 "运行实例" 按钮查看在线实例