强类型语言重载机制举例
当一个类里面定义了两个相同的方法时,会根据调用方法的传参系统进行自动调用相应的类
class A{
public display(int number){
return 1;
}
public display(String string){
}
}
A obj = new A();
obj.display(1); //调用第一个方法
obj.display("good"); //调用第二个方法
这是传统重载的概念 , 但是PHP是弱类型语言,它不支持这种方式,PHP拥有自己的重载方式,本质上就是在访问不存在、权限不够的类成员时自动触发(魔术方法),这就是PHP重载,也叫容错处理。
PHP类属性重载模式方法列表:
__get(param:属性名) : 当访问一个不存在的属性时触发
__set(param:属性名,param:属性值):当设置一个不存在的属性时触发
__isset(param:属性名):当判断一个属性是否存在时触发
__unset(param:属性名):当销毁一个属性时触发
PHP类方法重载方法列表:
__call(param:方法名,param:参数):当访问一个不存在类方法时触发
__callstatic(param:方法名,param:参数):当访问一个不存在的静态类方法时触发