Namespaces in PHP ähneln Namespaces in C++, die Elemente durch Wiederverwendung von Namen kapseln, um Namenskonflikte zu vermeiden. In vielen Situationen wird es auch als abstraktes Konzept angesehen. Es ermöglicht die erneute Deklaration derselben Klassen oder Schnittstellen oder Funktionen oder konstanten Funktionen in einem bestimmten Namespace, ohne dass der schwerwiegende Fehler auftritt. Dieser Namespace ist ein hierarchisch beschrifteter Codeblock, der einen normalen PHP-Code enthält. Es besteht aus einem gültigen PHP-Code. Darüber hinaus betrifft es Codetypen wie Klassen, Funktionen, Konstanten und Schnittstellen. Ein Namespace wird mit dem Schlüsselwort namespace.
deklariert WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Syntax:
namespace sample;
Hier wird ein Namespace-Beispiel deklariert.
Ähnlich wie andere PHP-Identifikatoren sollte auch der Namespace einigen Regeln folgen. Das heißt, ein Namespace sollte mit einem Unterstrich oder Buchstaben beginnen, gefolgt von Buchstaben, Unterstrichen oder Zahlen.
Stellen wir uns einen Namensraum als einen Schrank vor, in dem wir alle Gegenstände wie Kleider, Accessoires usw. aufbewahren können. Für jede Person wird es einen separaten Schrank geben, in dem ihre Gegenstände aufbewahrt werden können. Um den Schrank jeder Person zu identifizieren, kann jeder mit einem Etikett versehen werden, sodass es nicht zu Verwechslungen kommt. In der Vergangenheit trennten Programmierer Codebasen durch Unterstriche in den Konstanten, Klassen und Funktionen. Es ähnelt dem Beschriften aller Gegenstände und deren Aufbewahrung in einem großen Schrank. Auch wenn es organisiert ist, wird die Effizienz nicht höher sein.
In dieser Situation erscheint das Namespace-Konzept. Dieselbe Klasse, Schnittstelle, Funktion und Konstante können ohne schwerwiegende Fehler in verschiedenen Namespaces deklariert werden. Im Grunde ist der Namespace ein hierarchisch beschrifteter Codeblock, der einen normalen PHP-Code enthält.
Wie wir bereits erwähnt haben, kapseln Namespaces in PHP Elemente durch Wiederverwendung von Namen, um Namenskonflikte zu vermeiden.
Stellen Sie sich zum Beispiel ein PHP-Programm wie unten erwähnt vor.
Code:
<?php namespace sample ; function func() { echo ' Never give up! Keep trying . . . ' ; } // Resolves to the function func() ; ?>
Es ist ersichtlich, dass eine Funktion func vorhanden ist und bei der Ausführung des Codes einen Text ausgibt.
Mit zunehmender Größe der PHP-Codebibliothek besteht die Möglichkeit, dass ein bereits deklarierter Klassenname oder eine Funktion unbeabsichtigt wiederverwendet wird. Das Problem verschärft sich, wenn Komponenten und Plugins von Drittanbietern hinzugefügt werden. Darüber hinaus können Namenskollisionsprobleme mithilfe von Namespaces gelöst werden. PHP-Konstanten, -Funktionen und -Klassen können in Namespace-Bibliotheken zusammengefasst werden. Diese Namespaces können einer bestimmten Hierarchie folgen, ähnlich den im Dateisystem des Computers verfügbaren Ordnern. Das Konzept der Sub-Namespaces ist sehr nützlich für die Organisation der Projektstruktur. Wenn das Projekt Datenbankzugriff benötigt, können alle mit der Datenbank verbundenen Codes, wie Ausnahmen einer Datenbank und Verbindungshandler, in einem Unternamensraum namens DB gespeichert werden.
Um die Flexibilität aufrechtzuerhalten, ist es besser, Unternamensräume in Unterverzeichnissen zu speichern. Dies inspiriert zur Projektstrukturierung und erleichtert die Verwendung von Autoloadern, die dem Standard PSR-0 folgen.
Normalerweise wird in PHP ein Backslash als Namespace-Trennzeichen verwendet.
SampleSub Sample
SampleSubSampleSamp
CollegeProjCommonWidget
In den Fällen, in denen eine Namensraumdeklaration global erfolgt, kann sie wie unten gezeigt ohne Verwendung eines Namens deklariert werden.
Code:
<?php namespace { // Global . . . ! } ?>
In manchen Fällen können mehrere Namespaces innerhalb eines PHP-Codes verwendet werden, wie unten gezeigt.
Code:
<?php namespace sam { } namespace samp { } namespace { } ?>
Code:
<?php echo "Never Give up ! " ; namespace Html ; . . . ?>
Im Folgenden finden Sie Beispiele für PHP-Namespace:
PHP-Programm, das einen Namespace verwendet und eine Funktion sowohl implizit als auch explizit aufruft.
Code:
<?php namespace sample; function func() { echo 'Never give up! Keep trying. . .'; } // Resolves to the function func(); // Explicitly resolves to the function namespace\func(); ?>
Ausgabe:
Im Programm wird zunächst ein Namespace-Beispiel erstellt. Danach ist ersichtlich, dass eine Funktion func definiert ist und beim Ausführen des Codes einen Text ausgibt. Da die Funktion implizit und explizit aufgerufen wird, wird der Text zweimal gedruckt.
Angenommen, der Namespace wird nach der Definition der Funktion deklariert, wie unten gezeigt. Was wird dann passieren?
Code:
<?php function func() { echo 'Never give up! Keep trying. . .'; } // Resolves to the function func(); namespace sample; // Explicitly resolves to the function namespace\func(); ?>
Yes…. An error will be displayed, as shown below. That is, namespace should be defined at the beginning of the program.
Output:
PHP program that uses a namespace and calls a function for printing table details.
Code:
<?php namespace Html; class sampletable { public $heading= ""; public $cntrows= 0; public function fnc() { echo "<p> The Table used is '{$this->heading}' that has {$this->cntrows} different rows. . . .</p>"; } } $tb= new sampletable (); $tb->heading= " Students "; $tb->cntrows= 8 ; ?> <!DOCTYPE html> <html> <body> <?php $tb->fnc(); ?> </body> </html>
Output:
In the program, a namespace Html is created first. After that, a class sampletable is created with variables heading, cnt rows. A function func is also present, which contains a text. Heading students and 8 as count of rows were given after that. On executing the code, the line gets printed with the table name and number of rows.
Namespaces in PHP is similar to namespaces in C++ that encapsulates items by reusing names in order to avoid name conflicts. In this article, different aspects such as syntax, working, and examples of size() functions are explained in detail.
Das obige ist der detaillierte Inhalt vonPHP-Namespace. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!