簡體   English   中英

為什么要在Cakephp 3.x中使用parent :: initialize

[英]Why use parent::initialize in Cakephp 3.x

為什么我需要在Controller的initialize方法上使用parent::initialize() ,盡管沒有此方法也可以工作?

使用:cakephp 3

謝謝

這些是php OOP的基礎知識: http : //php.net/manual/pl/keyword.parent.php

您可能會發現自己編寫的代碼引用了基類中的變量和函數。 如果派生類是基類中代碼的細化或特殊化,則尤其如此。

而不是在代碼中使用基類的文字名稱,您應該使用特殊名稱parent,它指的是基類的擴展聲明中給出的基類名稱。 這樣,可以避免在多個地方使用基類的名稱。 如果您的繼承樹在實現期間發生更改,則只需更改類的擴展聲明即可輕松進行更改。

class A {
    function example() {
        echo "I am A::example() and provide basic functionality.<br />\n";
    }
}

class B extends A {
    function example() {
        echo "I am B::example() and provide additional functionality.<br />\n";
        parent::example();
    }
}

$b = new B;

// This will call B::example(), which will in turn call A::example().
$b->example();

是否需要致電取決於您的實施。 但是,在框架中,通常最好在覆蓋方法時調用父方法,以確保調用鏈中的邏輯。 閱讀php手冊,附帶示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM