4

以下のスニペットに相当する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にあります。

4

2 に答える 2

7

PHPに相当するものは

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

これは、コンストラクターのPHPドキュメントで明示的に言及されています。

C#とPHPの重要な違いに注意する必要があります。PHPでは、ベースコンストラクターを明示的に呼び出さないと、まったく呼び出されません。これは、基本コンストラクターが常に呼び出されるC#の場合と同じではありません(ただし、パブリックパラメーターのないコンストラクターが存在する場合は明示的な呼び出しを省略できます)。

于 2012-05-15T17:25:23.927 に答える
4

あなたが探しているparentのは、親クラスのアクセサーです。

経由parentで、基本クラスのコンストラクターを呼び出すことができます。parent::__construct($param, $param2)

参照: http: //php.net/manual/en/keyword.parent.php

これは、次のようにコンストラクターに直接入ることに注意してください。

public function __construct($x) {
    parent::__construct($x);
}
于 2012-05-15T17:25:47.433 に答える