php继承:子类继承父类中的数据?

时间:2013-08-04 18:37:27

标签: php oop inheritance php-5.4

有时候我迷路了,并开始怀疑我是否在用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 )作为我的答案。

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

1 个答案:

答案 0 :(得分:0)

似乎你在某种程度上混淆了模板(类)和对象(类的实例)。

  • 如何使用某些给定的初始值对类base的一个对象进行实例化会对类child的其他对象产生什么影响? 类child实例不会动态“继承”类base实例的某些属性。

  • 如果您想从base__construct方法初始化一些受保护的属性,并且您希望也可以从child类中进行初始化,而无需重新启动 - 编写__construct方法,然后您不得覆盖__construct类的child方法。