Was sind die Merkmale des PHP-Konstruktors?
Konstruktor
__construct ([ mixed $args [, $... ]] ) : void
PHP 5 ermöglicht es Entwicklern, eine Methode als Konstruktor in einer Klasse zu definieren. Klassen mit einem Konstruktor rufen diese Methode jedes Mal auf, wenn ein neues Objekt erstellt wird. Sie eignet sich daher 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'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 keine von der übergeordneten Klasse erbt. Wenn ja, dann wird versuchen, 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 die 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 } } ?>
Weitere PHP-bezogene Kenntnisse finden Sie auf der PHP-Chinese-Website!
Das obige ist der detaillierte Inhalt vonWas sind die Merkmale des PHP-Konstruktors?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!