Beispiel #1 Definieren Sie mehrere Namespaces, einfache Kombinationssyntax
<?php namespace MyProject; const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } namespace AnotherProject; const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } ?>
Es wird nicht empfohlen, diese Syntax zum Definieren mehrerer Namespaces in einer einzelnen Datei zu verwenden. Es wird empfohlen, die folgende Syntax in geschweiften Klammern zu verwenden.
Beispiel #2 Definieren Sie mehrere Namespaces, Klammersyntax
<?php namespace MyProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } namespace AnotherProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } ?>
In der tatsächlichen Programmierpraxis wird dringend davon abgeraten, mehrere Namespaces in derselben Datei zu definieren. Diese Methode wird hauptsächlich verwendet, um mehrere PHP-Skripte in derselben Datei zusammenzuführen.
Um globalen Nicht-Namespace-Code mit Namespace-Code zu kombinieren, kann nur die Syntax mit geschweiften Klammern verwendet werden. Globaler Code muss in geschweifte Klammern mit einer Namespace-Anweisung ohne Namen eingeschlossen werden, zum Beispiel:
Beispiel #3 Definieren Sie mehrere Namespaces und Code, der nicht im Namespace enthalten ist
<?php namespace MyProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } namespace { // global code session_start(); $a = MyProject\connect(); echo MyProject\Connection::start(); } ?>
Außer dem Beim Öffnen der Declare-Anweisung darf sich kein PHP-Code außerhalb der Namespace-Klammern befinden.
Beispiel #4 Definieren mehrerer Namespaces und Code, der nicht in Namespaces enthalten ist
<?php declare(encoding='UTF-8'); namespace MyProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } namespace { // 全局代码 session_start(); $a = MyProject\connect(); echo MyProject\Connection::start(); } ?>