PHP: Konstruktor- und Destruktoranalyse
Dieser Artikel stellt hauptsächlich die Analyse von Konstruktor und Destruktor in PHP vor. Dieser Artikel verwendet Code-Beispiele, umden Konstruktor und Destruktor in PHP zu erklären Wer es braucht, kann sich auf
Konstruktor
void construct ([ mixed $args [, $... ]] )
PHP 5 beziehen, mit dem Entwickler eine Methode als Konstruktor in einer Klasse definieren können. 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 Nr. 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(); ?>
Ausgabe:
Im BaseClass-Konstruktor
Im BaseClass-Konstruktor
Im SubClass-Konstruktor
Im BaseClass-Konstruktor
Wenn PHP 5 aus Gründen der Abwärtskompatibilität die Funktion „construct()“ in der Klasse nicht finden kann und keine von der übergeordneten Klasse erbt, versucht es, den Konstruktor im alten Stil und die Klassenfunktion zu finden mit dem gleichen Namen. Ein Kompatibilitätsproblem tritt also nur dann auf, wenn die Klasse bereits über eine Methode namens construction() verfügt, diese aber für andere Zwecke verwendet wird.
Im Gegensatz zu anderen Methoden generiert PHP keine E_STRICT-Fehlermeldung, wenn construction() von einer Methode mit anderen Parametern als der übergeordneten Klasse construction() überschrieben wird.
Seit PHP 5.3.3 ist im Namespace die Methode mit demselben Namen wie der Klassenname kein Konstruktor mehr. Diese Änderung wirkt sich nicht auf Klassen aus, die sich nicht im Namespace befinden.
Beispiel Nr. 2 Konstruktoren in Namespace-Klassen
<?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 } } ?>
Destruktor
void destruct(void)
PHP 5 führte das Konzept des Destruktors ein. Dies ähnelt andere objektorientierte Sprachen wie C++. Ein Destruktor wird ausgeführt, wenn alle Verweise auf ein Objekt entfernt werden oder wenn das Objekt explizit zerstört wird.
Beispiel Nr. 3 Destruktorbeispiel
<?phpclass MyDestructableClass { function construct() { print "In constructor\n"; $this->name = "MyDestructableClass"; } function destruct() { print "Destroying " . $this->name . "\n"; }} $obj = new MyDestructableClass();?>
Wie der Konstruktor wird auch der Destruktor der übergeordneten Klasse nicht heimlich von der Engine aufgerufen. Um den Destruktor der übergeordneten Klasse auszuführen, muss parent::destruct() explizit im Destruktorkörper der untergeordneten Klasse aufgerufen werden. Darüber hinaus erbt die Unterklasse genau wie der Konstruktor die übergeordnete Klasse, wenn sie keinen Destruktor definiert.
Der Destruktor wird auch dann aufgerufen, wenn das Skript mit exit() beendet wird. Durch den Aufruf von exit() im Destruktor werden die verbleibenden Shutdown-Vorgänge abgebrochen.
Hinweis:
Der Destruktor wird aufgerufen, wenn das Skript geschlossen wird, nachdem alle HTTP-Header gesendet wurden. Es ist möglich, dass das Arbeitsverzeichnis beim Schließen des Skripts ein anderes ist als in einem SAPI (z. B. Apache).
Hinweis:
Der Versuch, eine Ausnahme im Destruktor auszulösen (der aufgerufen wird, wenn das Skript beendet wird), führt zu einem schwerwiegenden Fehler.
Das obige ist der detaillierte Inhalt vonPHP: Konstruktor- und Destruktoranalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
