Kernpunkte
- PHP liefert vordefinierte Konstanten und magische Methoden zur Verbesserung der Codefunktionalit?t. Vordefinierte Konstanten liefern schreibgeschützte Informationen zu Code und PHP, w?hrend magische Methoden in der Klasse reserviert sind, um spezielle PHP-Funktionen zu erm?glichen.
- vordefinierte Konstanten (alle Gro?buchstaben mit doppelten Unterstrichen) geben Informationen über den Code an. Zu den Beispielen geh?ren
__LINE__
(gibt die Zeilennummer in der Quelldatei zurück),__FILE__
(darstellt der Dateiname, einschlie?lich des vollst?ndigen Pfades),__DIR__
(darstellt nur den Dateipfad),__CLASS__
(zurückgibt den Namen der aktuellen Klasse),__FUNCTION__
(zurückgibt den Namen der aktuellen Funktion),__METHOD__
(repr?sentiert den Namen der aktuellen Methode).__NAMESPACE__
Die magische Methode bietet einen Mechanismus zur Verbindung zu speziellen PHP -Verhaltensweisen. Sie umfassen - (verwendet, um eine Objektinstanz der Klasse zu erstellen),
__construct()
(sogenannte ein Objekt, das von einem Müllsammler in PHP zerst?rt wird),__destruct()
, wenn die Eigenschaft undefiniert oder unzug?nglich ist, und im Getter -Kontext genannt wird will sich verunreinigen) und__get()
(Hilfe darstellen das Objekt als Zeichenfolge).__set()
__isset()
__unset()
PHP bietet einen speziellen Satz vordefinierter Konstanten und magischer Methoden für das Programm. Im Gegensatz zu Konstanten, die mit__toString()
festgelegt sind, h?ngen die Werte dieser Konstanten davon ab, wo sie im Code verwendet werden und zum Zugriff auf schreibgeschützte Informationen über den Code und den PHP verwendet werden. Magische Methoden sind reservierte Methodennamen, die Sie in Ihrer Klasse verwenden k?nnen, um sich mit speziellen PHP -Funktionen zu befassen. Wenn Sie die magischen Methoden und Konstanten von PHP nicht erfahren haben, ist dieser Artikel genau das Richtige für Sie! Ich werde einige weitere nützliche Methoden überprüfen und wie man sie in meinem Code verwendet.
Vordefinierte Konstante define()
und . Hier sind einige nützliche Konstanten von PHP:
-
__LINE__
Gibt die Zeilennummer der in der Quelldatei angezeigten Konstanten zurück, wie unten gezeigt:
<?php echo "line number: " . __LINE__; // line number: 2 echo "line number: " . __LINE__; // line number: 3 echo "line number: " . __LINE__; // line number: 4 ?>
-
__FILE__
zeigt den Namen der Datei an, einschlie?lich des vollst?ndigen Pfades, wie unten gezeigt:
<?php echo "the name of this file is: " . __FILE__; // the directory and name of file is: C:wampwwwindex.php ?>
-
__DIR__
stellen nur den Pfad zur Datei dar:
<?php echo "the directory of this file is: " . __DIR__; // the directory of this file is: C:wampwww ?>
-
__CLASS__
Gibt den Namen der aktuellen Klasse zurück:
<?php class Sample { public function __construct() { echo __CLASS__; } } $obj = new Sample(); // Sample ?>
-
__FUNCTION__
Gibt den Namen der aktuellen Funktion zurück:
<?php function mySampleFunc() { echo "the name the function is: " . __FUNCTION__; } mySampleFunc(); //the name of function is: mySampleFunc ?>
-
__METHOD__
repr?sentiert den Namen der aktuellen Methode:
<?php class Sample { public static function myMethod() { echo "the name of method is: " . __METHOD__; } } Sample::myMethod(); // the name of the method is: myMethod ?>
-
__NAMESPACE__
Gibt den Namen des aktuellen Namespace zurück:
<?php namespace MySampleNS; echo "the namespace is: " . __NAMESPACE__; // the name space is: MySampleNS ?>
magische Methode
Die magische Methode bietet einen Mechanismus zur Verbindung zu speziellen PHP -Verhaltensweisen. Im Gegensatz zu früheren Konstanten werden ihre Namen in Kleinbuchstaben/Kamelbuchstaben unter Verwendung von zwei führenden Unterstrichen wie __construct()
und __destruct()
geschrieben. __construct()
ist eine magische Methode, die von PHP aufgerufen wird, um Instanzen von Klassenobjekten zu erstellen. Es kann eine beliebige Anzahl von Parametern akzeptieren.
<?php class MySample { public function __construct($foo) { echo __CLASS__ . " constructor called with $foo."; } } $obj = new MySample(42); // MySample constructor called with 42 ?>
Wie der Name schon sagt, wird die __destruct()
-Methode aufgerufen, wenn ein Objekt durch einen PHP -Müllsammler zerst?rt wird. Es akzeptiert keine Parameter und wird normalerweise zur Durchführung von Reinigungsvorg?ngen verwendet, die m?glicherweise erforderlich sind, z. B. das Schlie?en einer Datenbankverbindung.
<?php class MySample { public function __destruct() { echo __CLASS__ . " destructor called."; } } $obj = new MySample; // MySample destructor called ?>
Unsere n?chste magische Methode übernimmt die überladung von Eigenschaften und bietet eine M?glichkeit, PHP undefinierte (oder nicht zug?ngliche) Eigenschaften und Methodenaufrufe zu erm?glichen. Wenn die Eigenschaft undefiniert (oder unzug?nglich) ist und im Gettter -Kontext aufgerufen wird, ruft PHP die __get()
-Methode auf. Diese Methode akzeptiert einen Parameter, n?mlich den Namen der Eigenschaft. Es sollte einen Wert zurückgeben, der als Wert der Eigenschaft betrachtet wird. Die __set()
-Methode ist für undefinierte Eigenschaften im Setterkontext erforderlich. Es akzeptiert zwei Parameter: Attributname und Wert.
<?php echo "line number: " . __LINE__; // line number: 2 echo "line number: " . __LINE__; // line number: 3 echo "line number: " . __LINE__; // line number: 4 ?>
im obigen Beispielcode ist der Eigenschaftsname in der Klasse nicht definiert. Ich habe versucht, ihm den Wert "mySample" zuzuweisen, und PHP ruft die magische Methode __set()
auf. Es dauert "Name" als $prop
Parameter und "Alireza" als $value
, und ich speichere den Wert in einem privaten $myArray
-Array. Die __get()
-Methode funktioniert ?hnlich; Es gibt andere magische Methoden, die uns helfen, unzug?ngliche Elementvariablen abzurufen und zu überprüfen, die auch im Beispielcode erscheinen: $obj->name
, __get()
und $prop
. __isset()
und __unset()
werden beide durch Funktionen mit demselben Namen (ohne Unterstrich) in PHP ausgel?st. __toString()
überprüfen Sie, ob die Eigenschaft festgelegt ist, und akzeptiert einen Parameter. Dies ist die Eigenschaft, die wir testen m?chten. __isset()
empf?ngt einen Parameter, n?mlich den Namen der Eigenschaft, die das Programm nicht festlegen m?chte. In vielen F?llen ist es nützlich, Objekte als Zeichenfolgen wie Ausgabe an Benutzer oder andere Prozesse darzustellen. Normalerweise repr?sentiert PHP sie als IDs im Speicher, was für uns nicht gut ist. Die __unset()
-Methode hilft uns, Objekte als Zeichenfolgen darzustellen. Diese Methode wird in jedem Fall ausgel?st, in dem ein Objekt als Zeichenfolge verwendet wird, z. B. __isset()
. Es kann auch wie jede andere gew?hnliche ?ffentliche Methode als direkt bezeichnet werden, was es vorzuziehen ist, Tricks wie das Anh?ngen leerer Saiten zum Gie?en vorzuziehen. __unset()
__toString()
echo "Hello $obj"
Zusammenfassung
Objektorientierte Programmierung kann Code erzeugen, der leichter zu warten und zu testen ist. Es hilft uns, bessere und standardm??igere PHP -Code zu erstellen. Darüber hinaus kann es die von PHP bereitgestellten magischen Methoden und Konstanten nutzen.
Bilder von Stepan Kapl / Shutterstock
FAQs auf PHP -Magic -Methoden und vordefinierten Konstanten
Was sind die verschiedenen Arten von magischen Methoden in PHP?
Die magische Methode in PHP ist eine spezielle Funktion, die automatisch ausgel?st wird, wenn bestimmte Bedingungen erfüllt sind. Sie beginnen immer mit einem doppelten Unterstrich (). Zu den verschiedenen Arten von magischen Methoden in PHP geh?ren `
construct () destruct () 、
call () 、
callStatic () 、
get () 、
set () 、
isSet () 、
uSet . Jede dieser Methoden wird durch ein bestimmtes Ereignis ausgel?st, z. B. beim Erstellen eines Objekts, des Zugriffs auf eine Eigenschaft oder das Aufrufen einer Methode.
Wie kann ich vordefinierte Konstanten in PHP verwenden?
Vordefinierte Konstanten in PHP sind immer eingebaute Konstanten zur Verfügung. Dazu geh?ren Kernkonstanten wie PHP_VERSION
und PHP_OS
sowie viele andere Konstanten, die durch verschiedene Erweiterungen definiert sind. Um eine vordefinierte Konstante zu verwenden, schreiben Sie einfach ihren Namen, ohne das Dollar -Zeichen ($) darin auszuschlie?en. Um beispielsweise die aktuelle Version von PHP zu erhalten, k?nnen Sie die PHP_VERSION
-Konstante verwenden, wie unten gezeigt: echo PHP_VERSION;
Was ist der Zweck der magischen Methode in PHP? __construct()
Die magische Methode in PHP wird jedes Mal automatisch aufgerufen, wenn ein neues Objekt aus einer Klasse erstellt wird. Es wird normalerweise verwendet, um die Eigenschaften eines Objekts zu initialisieren oder alle Einstellungen auszuführen, die vom Objekt vor der Verwendung erforderlich sind. __construct()
Ja, Sie k?nnen Ihre eigenen Konstanten in PHP unter Verwendung der Funktion
oder dem Schlüsselwort define()
definieren. Sobald eine Konstante definiert ist, kann sie nicht ge?ndert oder nicht definiert werden. const
Der Hauptunterschied zwischen magischen Methoden und herk?mmlichen Methoden in PHP besteht darin, dass magische Methoden automatisch durch bestimmte Ereignisse ausgel?st werden, w?hrend herk?mmliche Methoden explizit aufgerufen werden müssen. Au?erdem beginnt die magische Methode immer mit einem doppelten Unterstrich (__), w?hrend die herk?mmliche Methode nicht der Fall ist.
Wie kann man überprüfen, ob Konstanten in PHP definiert sind?
Sie k?nnen die Funktion
verwenden, um zu überprüfen, ob Konstanten in PHP definiert sind. Diese Funktion nimmt den Namen der Konstante als Zeichenfolge an und gibt true zurück, wenn die Konstante definiert ist, andernfalls gibt es false zurück. defined()
__destruct()
Magische Methode in PHP wird automatisch aufgerufen, wenn das Objekt zerst?rt wird oder das Skript endet. Es wird h?ufig verwendet, um Reinigungsaufgaben auszuführen, z. B. das Schlie?en einer Datenbankverbindung oder die Freigabe von Ressourcen.
__destruct()
Kann ich magische Methoden mit statischen Methoden in PHP anwenden?
Ja, Sie k?nnen magische Methoden mit statischen Methoden in PHP verwenden.
magische Methoden werden automatisch abgefeuert, wenn sie statische Methoden aufrufen, die unzug?nglich sind oder in der Klasse nicht existieren.
__callStatic()
Was sind einige h?ufige Verwendungen von vordefinierten Konstanten in PHP?
vordefinierte Konstanten in PHP werden normalerweise verwendet, um Informationen über die PHP -Umgebung zu erhalten oder das Verhalten bestimmter Funktionen zu kontrollieren. Beispielsweise kann die
-Konstante verwendet werden, um die PHP -Version zu überprüfen, und die -Konstante kann verwendet werden, um das Betriebssystem zu überprüfen. PHP_VERSION
PHP_OS
Kann ich die magische Methode in PHP neu schreiben?
Ja, Sie k?nnen magische Methoden in PHP umschreiben. Beim Erstellen einer Unterklasse k?nnen Sie Ihre eigene Implementierung der magischen Methode bereitstellen. Wenn Sie jedoch die Implementierung der übergeordneten Klasse aufrufen m?chten, k?nnen Sie das Schlüsselwort
verwenden.Das obige ist der detaillierte Inhalt vonMagische Methoden und vordefinierte Konstanten in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

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

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

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

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

ToversionAPHP-basiertApieffektiv, useUrl-basiertversionsforclarityAndaseFrouting, separateversionedCodetoAvoidConflicts, DeprecateoldversionswithClearcommunication, und considercustomheadsonlywaNno.

TosecurelyHandleAuthenticationAuthorizationInphp, folge theSteps: 1.Alwayshashpasswordswithpassword_hash () und password_verify (), usePreeParedStatementStopreventsQlinjapitca und StoreuserDatain $ _SessionArtelogin.2.ImplementscaChescescesc

ProzeduralandObject-orientedProgramming (OOP) inPhpdifferS sisideftribitionInstructure, Wiederverwendbarkeit und datahandling.1.ProceduralProgrammingusSfunctions-organisierte Folgesequentiell, optableForsmallscripts.

Phpdoesnothaveabuilt-inWeakmapbutoffersWeakreferenceForsimilarFunction.1.WeakreferenceAllowsholdingReferences WithoutPreventingGAGECollection

Um Datei -Uploads in PHP sicher zu verarbeiten, besteht der Kern darin, Dateitypen zu überprüfen, Dateien umzubenennen und die Berechtigungen zu beschr?nken. 1. Verwenden Sie Finfo_File (), um den realen MIME -Typ zu überprüfen, und nur bestimmte Typen wie Bild/JPEG sind zul?ssig. 2. Verwenden Sie Uniqid (), um zuf?llige Dateinamen zu generieren und sie im Root-Verzeichnis ohne Web zu speichern. 3.. Begrenzen Sie die Dateigr??e durch Php.ini- und HTML -Formulare und setzen Sie die Verzeichnisberechtigungen auf 0755; 4. Verwenden Sie Clamav, um Malware zu scannen, um die Sicherheit zu verbessern. Diese Schritte verhindern effektiv Sicherheitslücken und stellen sicher, dass der Upload -Prozess des Datei -Uploads sicher und zuverl?ssig ist.

Ja, PHP kann mit NoSQL -Datenbanken wie MongoDB und Redis durch bestimmte Erweiterungen oder Bibliotheken interagieren. Verwenden Sie zun?chst den MongoDBPHP -Treiber (installiert über PECL oder Composer), um Client -Instanzen zu erstellen und Datenbanken und Sammlungen zu betreiben, wobei Sie Insertion, Abfrage, Aggregation und andere Vorg?nge unterstützen. Zweitens verwenden Sie die Predis Library oder PHPREDIS-Erweiterung, um eine Verbindung zu Redis herzustellen, Schlüsselwerteinstellungen und -akquisitionen durchzuführen und PHPREDIS für Hochleistungsszenarien zu empfehlen, w?hrend Predis für die schnelle Bereitstellung bequem ist. Beide sind für Produktionsumgebungen geeignet und gut dokumentiert.

In PHP ist der Hauptunterschied zwischen == und == die Strenge der Typprüfung. == Die Konvertierung des Typs wird vor dem Vergleich durchgeführt, beispielsweise 5 == "5" gibt true zurück und === fordert an, dass der Wert und der Typ gleich sind, bevor True zurückgegeben wird, z. B. 5 === "5" gibt false zurück. In den Nutzungsszenarien ist === sicherer und sollte zuerst verwendet werden, und == wird nur verwendet, wenn die Typumwandlung erforderlich ist.

Die Methoden zur Verwendung grundlegender mathematischer Operationen in PHP sind wie folgt: 1. Additionszeichen unterstützen Ganzfaktoren und Floating-Punkt-Zahlen und k?nnen auch für Variablen verwendet werden. String -Nummern werden automatisch konvertiert, aber nicht für Abh?ngigkeiten empfohlen. 2. Subtraktionszeichen verwenden - Zeichen, Variablen sind gleich, und die Typumwandlung ist ebenfalls anwendbar. 3. Multiplikationszeichen verwenden * Zeichen, die für Zahlen und ?hnliche Zeichenfolgen geeignet sind; 4. Division verwendet / Zeichen, die vermeiden müssen, durch Null zu dividieren, und beachten Sie, dass das Ergebnis m?glicherweise schwimmende Punktzahlen sein kann. 5. Die Modulzeichen k?nnen verwendet werden, um ungerade und sogar Zahlen zu beurteilen, und wenn negative Zahlen verarbeitet werden, stimmen die Restzeichen mit der Dividende überein. Der Schlüssel zur korrekten Verwendung dieser Operatoren liegt darin, sicherzustellen, dass die Datentypen klar sind und die Grenzsituation gut behandelt wird.
