PHP相当于C#`:base`

时间:2012-05-15 17:23:45

标签: c# php

以下代码段的PHP代码相同:

C#代码:

class Composite : Component
  {
    private List<Component> _children = new List<Component>();

    // Constructor
    public Composite(string name) : base(name)
    {
    }
  }

PHP代码?

我正在寻找: base(name)部分。可在此处找到C#中的完整代码参考http://www.dofactory.com/Patterns/PatternComposite.aspx

2 个答案:

答案 0 :(得分:7)

PHP等价物是

class Foo extends Bar {
    public function __construct($param) {
        parent::__construct($param);
    }
}

这在PHP documentation for constructors中明确提到。

你应该记住C#和PHP之间的重要区别:在PHP中,如果你没有显式调用基础构造函数,它根本就不会被调用!这与C#中的基本构造函数始终调用不同(尽管如果存在公共无参数构造函数,您可以省略显式调用)。

答案 1 :(得分:4)

您正在寻找parent - 父类的访问者。

通过parent,您可以调用基类构造函数:parent::__construct($param, $param2)

请参阅:http://php.net/manual/en/keyword.parent.php

请注意,这会直接进入构造函数,如下所示:

public function __construct($x) {
    parent::__construct($x);
}