self 和 parent 都是表示当前类的作用域,而不仅仅是某个类的实例的作用域
self 和 parent 的区别是:
self不知道自己在类的继承关系中的位置,如果基类中的方法被重写,self::function 总是指向当前子类的function,如果没有被重写,那调用的就是基类的方法。
parent就是在子类重写了父类的方法时,用来调用父类中的那个方法。
class MyObject{
function baseMethod(){
echo "declared in parent class!!!";
}
}
class MySubObject extends MyObject{
function subMethod(){
echo "output sub class !!!";
self::baseMethod();
}
}
MySubObject::subMethod();
//$m = new MySubObject();
//$m->subMethod();