登录  /  注册
博主信息
博文 35
粉丝 0
评论 0
访问量 42928
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP函数--计算不定参数的乘积--2019年09月28日
Victor的博客
原创
952人浏览过

作业:

练习使用剩余参数,实现不定参数的乘积

【1】PHP自定义函数

可以通过自定义函数的方法来实现特定的功能,通过函数可以实现代码复用和结构化编程。

通常,函数的声明格式为:function 函数名称(函数形参){    函数体    }

函数通过被调用来执行:函数名(实参);

【2】可变个数参数的函数

PHP 在自定义函数中支持可变数量的参数列表,仅适用于实参数量很多数量不确定的场景。

如果希望在函数中接受任意数量的参数,则需要在函数中使用PHP系统函数:func_get_args(),它可以把传入的所有实参当作一个数组返回;

PHP5.6以后,在声明函数形参时可以使用“...”运算符,从而实现变长参数函数。

【3】一个实现不定参数乘积的实例:

实例
<?php 
	function muti_product($a, $b, ...$c) {
		return $a * $b * array_product($c);
	}

	echo muti_product(1, 2, 6, 3, 4, 5);

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

上例中:$a=1,$b=2,则剩余的所有参数全部作为数组赋值给$c,

【4】总结:

经过自己折腾后发现:这种函数在实际应用中需谨慎使用,搞不好就给自己挖了坑。

  • PHP默认是弱类型模式,传入的实参可以是任意类型数据,意外的强制转换可能会产生不可预见的结果;如果感觉输入不可控,可以设置为严格模式+错误处理的函数来实现。

  • 自由度太高,一定要确保输入的格式可以产生正确的结果。
    比如:这样输入参数echo muti_product(1, 2, [6, 3, 4, 5]);   会计算出错误的结果:2    
    可以这样输入:echo muti_product(1, 2, ...[6, 3, 4, 5]);
    也可以使用一个数组变量$x = [6,3,4,5];echo muti_product(1, 2, ...$x);
    甚至这种输入也可以获得正确的结果:echo muti_product(1, 2, 6, ...[3, 4, 5]); 

  • ...运算符的作用:简化了对传入参数的处理,它把所有 / 或者是剩余(有声明对应关系 或者 未声明对应关系)的数据全部放入一个实际的数组中,从而方便处理。所以当一个函数参数比较多时,可以不用逐一传递,只需传递一个数组,数组中的成员就展开为函数的参数了。



批改状态:合格

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

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

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