重载分为属性重载和方法重载,在PHP中的重载和在其它编程语言的重载不一样。
当一个对象或类调用不存在的属性和方法时,会出错,那么php中重载就是来处理这种出错状况,使代码不出错。
当然这里用到魔术方法__get()就不会出错了。
而属性重载会用到四个魔术方法,__get()----取值,__set()----赋值,__unset()----销毁变量,__isset()判断变量是否有值,在类里面写了,用到不存在的属性时,都会去自动调用这些属性,当然这些魔术方法都是有参的,参数都是属性名。
方法重载:当调用的方法不存在时会自动调用__call($methodName.$array)这个魔术方法,第一个参数是方法名,第二个是实参数据,是一个数组。如果是调用不存在的静态方法,则会自动调用类中的__callstatic()这个静态魔术方法。
当然,其实也可以实现php的方法重载像普通方法重载一样。后续再写
本文介绍PHP中属性和方法重载的概念及其使用方式。通过魔术方法如__get(), __set(), __unset(), __isset(), 和__call()等,可以处理对象中不存在的属性和方法调用,有效避免错误发生。

被折叠的 条评论
为什么被折叠?



