Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist die besondere Bedeutung des Aufrufs des Konstruktors einer nicht verwandten Klasse im Konstruktor von PHP?

Was ist die besondere Bedeutung des Aufrufs des Konstruktors einer nicht verwandten Klasse im Konstruktor von PHP?

黄舟
黄舟Original
2017-07-02 09:56:451031Durchsuche

Ich beobachte den Startvorgang von Yii2 und die übergeordnete Klasse des Application -Konstruktors ist so geschrieben. Ich möchte fragen, was das Besondere am letzten Satz Component::construct($config) ist. hier angerufen?

    public function construct($config = [])
    {
        Yii::$app = $this;
        $this->setInstance($this);

        $this->state = self::STATE_BEGIN;

        $this->preInit($config);

        $this->registerErrorHandler($config);

        Component::construct($config);
    }

Hauptsächlich, weil es ein Problem gibt, das ich beim Verfolgen des Codes nicht verstehen kann,
Component::construct($config)---->Object::construct($ config)-- ->Yii::configure($this,$config)
So wird es in Yii::configure gehandhabt:

  public static function configure($object, $properties)
    {
        foreach ($properties as $name => $value) {
            $object->$name = $value;
        }

        return $object;
    }

Die entsprechende Setter-Funktion wird hier tatsächlich aufgerufen , wobei $config im Allgemeinen die Einstellungen von Komponenten enthält, sodass die Funktion setComponents aufgerufen wird. Diese Funktion wird von der übergeordneten Klasse Application definiert. Warum kann die Instanz $this also die Funktion Application aufrufen? $Dies ist offensichtlich eine Instanz von Component, daher kann ich die Grundlagen von PHP nicht gut verstehen.

Anwendung ruft die Konstruktionsmethode von Component auf und erbt die Konstruktionsmethode von Component 🎜>Objektklasse, wo ruft sie die Funktion der Anwendung auf? Der Konstruktor der Anwendung ruft im Grunde den Konstruktor der übergeordneten Klasse mit mehrschichtiger Vererbung auf. Es ist also verständlich, dass $this in Object letztendlich auf die Anwendungsinstanz verweist.

Das obige ist der detaillierte Inhalt vonWas ist die besondere Bedeutung des Aufrufs des Konstruktors einer nicht verwandten Klasse im Konstruktor von PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn