此处说的PHP中的重载指的是:动态的创建属性和方法。但是,还有一个版本说的重载不是这样的。见详情
此处说的PHP中的重载指的是:动态的创建属性和方法。但是,还有一个版本说的是重载是:指一个标识符被用作多个函数名,且能够通过函数的参数个数或参数类型将这些同名的函数区分开来,调用不发生混淆。即当调用的时候,虽然方法名字相同,但根据参数的不同可以自动调用相应的函数。(重载不是重写哦,友情提示。)所以,感觉这两个截然不同的定义和解释,完全会误导和搞晕PHP新手,希望大家谨慎,哈哈。
此处说的PHP中的重载指的是:动态的创建属性和方法。但是,还有一个版本说的是重载是:指一个标识符被用作多个函数名,且能够通过函数的参数个数或参数类型将这些同名的函数区分开来,调用不发生混淆。即当调用的时候,虽然方法名字相同,但根据参数的不同可以自动调用相应的函数。(重载不是重写哦,友情提示。)所以,感觉这两个截然不同的定义和解释,完全会误导和搞晕PHP新手,希望大家谨慎,哈哈。
2017-06-28
算了这个问题,还是由我自己来回答吧。PHP中的"重载"与其它绝大多数面向对象语言不同。传统的"重载"是用于提供多个同名的类方法,但各方法的参数类型或个数不同(但是在PHP中不允许存在多个同名方法)。也就是,上面我说的,慕课网讲到的重载其实是php中的“山寨版”的重载。但是,我上面说到的重载是其他很多语言用到的“真正意义”的重载。灵活的php中其实也可以实现类似的,和其他语言中的那种重载操作,需要先用到func_get_args函数获取当前方法中传入的参数,然后通过count函数,获取传入参数的个数。然后用if条件判断语句来根据不同的参数个数,来做出不同的返回值或者操作。从而达到,同一个方法名称调用,传入不同的参数个数,进行不同的操作和处理。
举报