Heim >Backend-Entwicklung >PHP-Tutorial >PHP definiert mehrere Namespaces in derselben Datei

PHP definiert mehrere Namespaces in derselben Datei

伊谢尔伦
伊谢尔伦Original
2016-11-23 10:59:361241Durchsuche

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=&#39;UTF-8&#39;);
    namespace MyProject {
        const CONNECT_OK = 1;
        class Connection { /* ... */ }
        function connect() { /* ... */ }
    }
    namespace { // 全局代码
        session_start();
        $a = MyProject\connect();
        echo MyProject\Connection::start();
    }
?>


Stellungnahme:
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