关于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();

 

posted @ 2024-12-06 18:57  i金少  阅读(5)  评论(0编辑  收藏  举报