2016-12-06 14 views
0

__construct機能で$this->type = 'theme';を使用しているときに、エンティティThemeの新しいインスタンスをダンプします。エンティティコンストラクタでセッターまたはフィールドキーを使用すると、結果が異なるのはなぜですか?

ExplorerController.php on line 197: 
Theme {#450 ▼ 
    -id: null 
    -headings: ArrayCollection {#449 ▶} 
    -infos: null 
    -base: null 
    -deletedAt: null 
    -key: null 
    -description: null 
    -type: null 
    +"type": "theme" 
} 

最後のフィールドタイプnull値を持つ最初の、二回表示され、その後、前にある「プラス」記号と引用符の間に、なぜ私は理解していません。

私はセッター$this->setType('theme');を使用した場合、結果は予想通りである:私はそれがプロキシに関係していると思います

ExplorerController.php on line 197: 
Theme {#450 ▼ 
    -id: null 
    -headings: ArrayCollection {#449 ▶} 
    -infos: null 
    -base: null 
    -deletedAt: null 
    -key: null 
    -description: null 
    -type: "theme" 
} 

が、私は完全には理解していないこのテーマ。

誰かがここで何が起こっているのか説明できますか?

+0

エンティティのコードをお知らせください。 – olibiaz

答えて

3
  • ダッシュの前にtypeはプライベートメンバーであることを示します。
  • プラスはパブリックメンバーを示します。

$this->typeを明示的に設定すると、パブリックメンバーが設定されます。

コードを実際に見ることなく、$typeを2回(拡張クラスまたは特性の多分?)定義していないことを除いて、他のアドバイスはできません。

+0

私のクラス 'Entity'は**マップされたスーパークラス**からフィールド" type "を継承します。しかし、それは2回定義されておらず、 '__construct'関数でセッターを使用するときの動作は予想どおりです。 (私の編集を参照してください) – Roubi

+0

Property _defined_(親クラスで)一度、しかし、子クラスで同じ名前のプロパティを追加します。子クラスでは、親のprivateプロパティにアクセスすることはできません。そのため、子クラスに '$ this-> type'を設定すると、新しい動的プロパティ( 'type'と同じ名前)を追加します。 – Timurib

+2

https://3v4l.org/u3Uqhを参照してください – Timurib

関連する問題