0

有时我会迷失方向并开始怀疑我是否在用 php 编写类方面做得对。

例如,这些是非常基本和简单的类,

class base {

    protected $connection = null;

    /**
     * Set the contructor for receiving data.
     */
    public function __construct($connection)
    {
        $this->connection = $connection;

    }

    public function method()
    {
        print_r(get_object_vars($this));
    }

}

class child extends base{

    public function __construct(){
    }

    public function method()
    {
        print_r(get_object_vars($this));
    }
}

我的child课程从base. 我将一些数据/信息传递给base课堂。我希望child该类继承我刚刚传递的数据/信息。例如,

$base = new base("hello");

$child = new child(); 
$child->method(); 

所以我会假设我得到Array ( [connection] => hello )了我的答案。

但我实际上得到了这个Array ( [connection] => )

所以这意味着我每次都必须将那段数据传递到从基础扩展的子类中。否则我不会得到Array ( [connection] => hello )我的答案。

是否有正确的方法来编写子类以从父类继承传递的数据?

4

1 回答 1

0

似乎您以某种方式混淆了模板(类)和对象(类的实例)。

  • base用一些给定的初始值实例化一个类对象对其他类对象有何影响child? 类的实例child不会动态地“继承”类实例base的某些属性。

  • 如果你想从你的base__construct方法初始化一些受保护的属性,并且如果你希望你的child类也可以这样做而不必重新编写__construct方法,那么你不能覆盖__construct你的child类的方法。

于 2013-08-04T18:54:47.727 回答