创建参数个数可变的函数
定义一个参数个数可变的函数。
向函数传入一个数组类型的参数,并将可变的参数放在这个数组中:
//查找一组数的“平均值”
function mean($numbers){
//初始化以避免警告
$sum = 0;
//数组中的元素个数
$size = count($numbers);
//迭代处理数组,并累加数字
for($i = 0; $i < $size; $i++){
$sum+= $numbers[$i];
}
//除以数字个数
$average = $sum/$size;
//返回平均值
return $average;
}
$mean = mean(array(96, 93, 98, 98));
print $mean;
////////////////////////////////////////////////////////////////////////////////////////////
不使用参数表访问函数参数
// 定义一个名为 mean 的函数,用于计算一组数的平均值
function mean(){
// 初始化 $sum 变量为 0,用于累加传入的所有数字,避免在后续计算中出现未定义变量的警告
$sum = 0;
// 使用 func_num_args() 函数获取传入函数的参数个数,存储在 $size 变量中
$size = func_num_args();
// 使用 for 循环遍历所有传入的参数
// $i 从 0 开始,直到小于 $size(参数个数),每次循环 $i 自增 1
for($i = 0; $i < $size; $i++){
// 使用 func_get_arg($i) 函数获取当前循环索引 $i 对应的参数值,并将其加到 $sum 变量上
// 这样,$sum 会累加所有传入的数字
$sum += func_get_arg($i);
}
// 计算平均值,将累加的总和 $sum 除以参数的个数 $size
$average = $sum / $size;
// 返回计算得到的平均值
return $average;
}
// 调用 mean 函数,传入一组数字(96, 93, 98, 98)
$mean = mean(96, 93, 98, 98);
// 打印计算得到的平均值
print $mean;
/////////////////////////////////////////////////////////////////////////////////////////////
// 定义一个名为mean的函数,该函数不接受任何显式参数,但可以通过func_get_args()等函数获取传入的参数
function mean(){
// 初始化$sum变量为0,用于累加所有传入的数字。这一步是为了避免在后续计算中出现未定义变量的警告。
$sum = 0;
// 使用func_num_args()函数获取传入函数的参数个数,并将其存储在$size变量中。
// $size将用于后续计算平均值时作为除数。
$size = func_num_args();
// 使用foreach循环遍历func_get_args()函数返回的所有参数。
// func_get_args()返回一个包含所有传入参数的数组。
// 在循环中,每次迭代都会从数组中取出一个参数($arg),并将其累加到$sum变量中。
foreach(func_get_args() as $arg){
$sum += $arg; // 将当前参数值加到$sum上
}
// 计算平均值,将累加的总和$sum除以参数的个数$size。
// 注意,如果$size为0(即没有传入任何参数),这里将会发生除以零的错误。
// 但在本例中,由于我们至少传入了四个参数,所以不会发生这种情况。
$average = $sum / $size;
// 返回计算得到的平均值。
return $average;
}
// 调用mean函数,并传入一组数字(96, 93, 98, 98)作为参数。
$mean = mean(96, 93, 98, 98);
// 打印计算得到的平均值。
// 根据传入的数字,平均值应为(96 + 93 + 98 + 98) / 4 = 385 / 4 = 96.25。
print $mean;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验