欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php父类实例化一个对象,在子类中还能使用这个对象吗

程序员文章站 2022-05-30 10:06:00
...

三个类,a,b,c。在a中实例化c,b继承a。那么在b中怎么才能使用c的实例化对象。

a.php

require_once './c.php';

class a {

    public $c;
    public $test;

    public function __construct() {
        $this->test = "10";
        $this->c1 = new c();
    }

}

b.php

require_once './a.php';

class b extends a {

    function b1() {
        echo $this->test;
        $this->c->c1();
    }

}

$b = new b();
$b->b1();

c.php

class c {

    public function c1() {
        echo "this is c1 method";
    }

}

执行b.php的结果:
php父类实例化一个对象,在子类中还能使用这个对象吗

回复内容:

三个类,a,b,c。在a中实例化c,b继承a。那么在b中怎么才能使用c的实例化对象。

a.php

require_once './c.php';

class a {

    public $c;
    public $test;

    public function __construct() {
        $this->test = "10";
        $this->c1 = new c();
    }

}

b.php

require_once './a.php';

class b extends a {

    function b1() {
        echo $this->test;
        $this->c->c1();
    }

}

$b = new b();
$b->b1();

c.php

class c {

    public function c1() {
        echo "this is c1 method";
    }

}

执行b.php的结果:
php父类实例化一个对象,在子类中还能使用这个对象吗

`

public function __construct() {
    $this->test = "10";
    $this->c1 = new c();
}

`
你声明 a 类的时候,哪来的 c1变量
改成
`

public function __construct() {
    $this->test = "10";
    $this->c = new c();
}

`
就可以了

你没发现a.php中 $this->c1 = new c();写的是c1么

但是b.php中调用的属性是$this->c

相关标签: php