PHP的重载与java中的传统重载完全不同,它不支持java中的的重载方式。
传统的重载方式:
class Test{
public void sumAll(int a,int b){ //参数数量不同
return a+b;
}
public void sumAll(int a, int b,int c){
return a+b+c;
}
public void f1(int p){} //参数类型不同
public void f2(char p){}
}
PHP的重载:指的是,对成员的重新加载。是对当操作对象的不可访问成员时的处理。
不可访问(unaccessable)指的是:1,不存在;2,由于访问限制 访问不到!
PHP中使用魔术方法处理重载,按照处理的内容不同分成:
属性重载:
读:__get(属性名) 当试图访问一个不可访问的属性的值的时,会被自动调用
写:__set(属性名,属性值) 当试图设置一个不可访问的属性的值时,会自动调用
判断属性是否存在:__isset(属性名) 当试图判断一个不可访问的属性是否存在的话,会自动调用
当删除某个属性时:__unset(属性名) 当试图删除一个不可访问的属性时,会自动调用
方法重载:
__call(不可访问的方法名,方法调用时所携带的参数) 调用一个不可访问的方法
__callStatic(不可访问的方法名,方法调用时所携带的参数); 调用一个不可访问的静态方法
注意:重载方法,通常是提供错误处理与默认动作!