Heim > Backend-Entwicklung > PHP-Problem > Was sind die Merkmale des PHP-Konstruktors?

Was sind die Merkmale des PHP-Konstruktors?

藏色散人
Freigeben: 2023-02-26 09:28:01
Original
2571 Leute haben es durchsucht

Was sind die Merkmale des PHP-Konstruktors?

Was sind die Merkmale des PHP-Konstruktors?

Konstruktor

__construct ([ mixed $args [, $... ]] ) : void
Nach dem Login kopieren

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&#39;s constructor
}
// In BaseClass constructor
$obj = new BaseClass();
// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();
// In BaseClass constructor
$obj = new OtherSubClass();
?>
Nach dem Login kopieren

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
    }
}
?>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage