关于PHP this 和 self 调用类方法的区别
看以下代码
class ParentClass { public function parentMethod() { print_r(get_class($this)); //输出 ChildClass $this->get(); //这时候的this 是 ChildClass的对象 输出:子类的方法被调用 } public function get(){ echo "父类的方法被调用"; } } class ChildClass extends ParentClass { public function get() { echo "子类的方法被调用"; } } $child = new ChildClass(); $child->parentMethod(); // 输出:子类的方法被调用
输入在父类中通过this调用 get方法,但是因为当初实例化的是ChildClass,所以在父类方法的$this指向的是ChildClass 而不是ParentClass 。父类在被继承后依然希望调自己的get方法应该
self::get();