php - OOP PHP 中的 $this-> 和 parent::有什么不同?

标签 php oop inheritance super

我编码这样的东西给你一个例子

这是使用“$this->”

<?php
class A{
    public function example(){
        echo "A";
    }
}

class B extends A{
    public function example2(){
        $this->example();
    }
}

$b = new B();

echo $b->example2();
?>

这是使用父级::
<?php
class A{
    public function example(){
        echo "A";
    }
}

class B extends A{
    public function example2(){
        parent::example();
    }
}

$b = new B();

echo $b->example2();
?>

OOP PHP 中的 $this-> 和 parent::有什么不同?

最佳答案

不同之处在于您可以访问基类的函数,而不是当前实现的函数。

class A {
    public function example() {
        echo "A";
    }

    public function foo() {
        $this->example();
    }
}

class B extends A {
    public function example() {
        echo "B";
    }

    public function bar() {
        parent::example();
    }
}

这里有一些测试:
$a=new A();
$a->example(); // echos A
$a->foo();     // echos A

$b=new B();
$b->example(); // echos B
$b->foo();     // echos B
$b->bar();     // echos A

关于php - OOP PHP 中的 $this-> 和 parent::有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16265060/

相关文章:

java - 我什么时候应该在类里面使用 "this"?

java - 如何实现继承的抽象方法?

inheritance - 你为什么要对整个类(class)进行密封/最终定级?

php - 我如何存储 PDO 对象

php - fgetcsv 没有正确读取保存在 linux 系统中的 csv 文件

java - 从 MVC 架构中的对话框获取输入

c# - 需要帮助避免使用单例

c++ - 这种编译时确定继承的模式有名字吗?

php - 使用 mysqli prepare 查询数组

javascript - 是否可以选择日期或在一个输入上放置文本,并且自动也应该出现在另一个输入上