Heim >Backend-Entwicklung >PHP-Problem >Die Rolle der PHP-Konstruktormethode

Die Rolle der PHP-Konstruktormethode

藏色散人
藏色散人Original
2019-08-24 14:04:303931Durchsuche

Die Rolle der PHP-Konstruktormethode

Die Rolle der PHP-Konstruktormethode

Die Rolle der PHP-Konstruktormethode besteht darin, das Objekt zu initialisieren, wenn Das heißt, es wird Objektmitgliedsvariablen Anfangswerte zugewiesen, die immer zusammen mit dem neuen Operator in Anweisungen zum Erstellen von Objekten verwendet werden. Eine spezielle Klasse kann mehrere Konstruktoren haben, die anhand der Anzahl der Parameter oder der Parametertypen, also der Überladung der Konstruktoren, unterschieden werden können.

Verwandte Empfehlungen: [PHP-Tutorial]

Konstruktor

__construct ([ mixed $args [, $... ]] ) : void

PHP 5 ermöglicht Entwicklern die Arbeit in einer Klasse. Definieren Sie a Methode als Konstruktor. Klassen mit einem Konstruktor rufen diese Methode jedes Mal auf, wenn ein neues Objekt erstellt wird. Daher eignet sie sich sehr gut für einige Initialisierungsarbeiten vor der Verwendung des Objekts.

Hinweis:

Wenn ein Konstruktor in einer Unterklasse definiert ist, wird der Konstruktor seiner übergeordneten Klasse nicht implizit aufgerufen. Um den Konstruktor der übergeordneten Klasse auszuführen, müssen Sie parent::__construct() im Konstruktor der untergeordneten Klasse aufrufen. Wenn die Unterklasse keinen Konstruktor definiert, wird sie wie eine gewöhnliche Klassenmethode von der übergeordneten Klasse geerbt (sofern sie nicht als privat definiert ist).

Beispiel 1 Verwendung des neuen Standardkonstruktors

<?php
class BaseClass {
   function __construct() {
       print "In BaseClass constructor\n";
   }
}
class SubClass extends BaseClass {
   function __construct() {
       parent::__construct();
       print "In SubClass constructor\n";
   }
}
class OtherSubClass extends BaseClass {
    // inherits BaseClass&#39;s constructor
}
// In BaseClass constructor
$obj = new BaseClass();
// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();
// In BaseClass constructor
$obj = new OtherSubClass();
?>

Aus Gründen der Abwärtskompatibilität, wenn PHP 5 die Funktion __construct() in der Klasse nicht finden kann und auch nicht erbt Wenn Sie eine aus der übergeordneten Klasse verwenden, wird versucht, einen Konstruktor im alten Stil zu finden, bei dem es sich um eine Funktion mit demselben Namen wie die Klasse handelt. Ein Kompatibilitätsproblem tritt also nur dann auf, wenn eine Klasse bereits über eine Methode namens __construct() verfügt, diese aber für andere Zwecke verwendet wird.

Im Gegensatz zu anderen Methoden generiert PHP keine E_STRICT-Fehlermeldung, wenn __construct() von einer Methode mit anderen Parametern als der übergeordneten Klasse __construct() überschrieben wird.

Seit PHP 5.3.3 werden im Namespace Methoden mit demselben Namen wie der Klassenname nicht mehr als Konstruktoren verwendet. Diese Änderung wirkt sich nicht auf Klassen aus, die sich nicht im Namespace befinden.

Beispiel 2

<?php
namespace Foo;
class Bar {
    public function Bar() {
        // treated as constructor in PHP 5.3.0-5.3.2
        // treated as regular method as of PHP 5.3.3
    }
}
?>

Das obige ist der detaillierte Inhalt vonDie Rolle der PHP-Konstruktormethode. 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
Vorheriger Artikel:Die Rolle des PHP-DestruktorsNächster Artikel:Die Rolle des PHP-Destruktors