为了账号安全,请及时绑定邮箱和手机立即绑定

此处说的PHP中的重载指的是:动态的创建属性和方法。但是,还有一个版本说的重载不是这样的。见详情

此处说的PHP中的重载指的是:动态的创建属性和方法。但是,还有一个版本说的是重载是:指一个标识符被用作多个函数名,且能够通过函数的参数个数或参数类型将这些同名的函数区分开来,调用不发生混淆。即当调用的时候,虽然方法名字相同,但根据参数的不同可以自动调用相应的函数。(重载不是重写哦,友情提示。)所以,感觉这两个截然不同的定义和解释,完全会误导和搞晕PHP新手,希望大家谨慎,哈哈。

正在回答

4 回答

楼主没必要纠结,这是PHP伪重载,即实现重载的功能,但并不是真正的重载,与其他语言有区别。毕竟PHP属于弱类语言,只是作为后端开发的基础来学习的,最终大家还是要去掌握和学习JAVA这类强语言的。

0 回复 有任何疑惑可以回复我~

算了这个问题,还是由我自己来回答吧。PHP中的"重载"与其它绝大多数面向对象语言不同。传统的"重载"是用于提供多个同名的类方法,但各方法的参数类型或个数不同(但是在PHP中不允许存在多个同名方法)。也就是,上面我说的,慕课网讲到的重载其实是php中的“山寨版”的重载。但是,我上面说到的重载是其他很多语言用到的“真正意义”的重载。灵活的php中其实也可以实现类似的,和其他语言中的那种重载操作,需要先用到func_get_args函数获取当前方法中传入的参数,然后通过count函数,获取传入参数的个数。然后用if条件判断语句来根据不同的参数个数,来做出不同的返回值或者操作。从而达到,同一个方法名称调用,传入不同的参数个数,进行不同的操作和处理。

1 回复 有任何疑惑可以回复我~

给大家附上一个博客的链接吧,上面介绍了什么是php中的重写,什么是重载。看完你就会懵逼的。哈哈哈,感觉和慕课上面说的不是一个东东。http://www.cnblogs.com/xuan584521/p/6395217.html

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

此处说的PHP中的重载指的是:动态的创建属性和方法。但是,还有一个版本说的重载不是这样的。见详情

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信