ホームページ  >  記事  >  バックエンド開発  >  php は同じファイル内で複数の名前空間を定義します

php は同じファイル内で複数の名前空間を定義します

伊谢尔伦
伊谢尔伦オリジナル
2016-11-23 10:59:361220ブラウズ

例 #1 複数の名前空間を定義する、単純な組み合わせ構文

<?php
    namespace MyProject;
    const CONNECT_OK = 1;
    class Connection { /* ... */ }
    function connect() { /* ... */ }
    namespace AnotherProject;
    const CONNECT_OK = 1;
    class Connection { /* ... */ }
    function connect() { /* ... */ }
?>

この構文を使用して 1 つのファイルで複数の名前空間を定義することはお勧めできません。次の中括弧形式の構文を使用することをお勧めします。

例 #2 複数の名前空間を定義する、中括弧構文

<?php
    namespace MyProject {
        const CONNECT_OK = 1;
        class Connection { /* ... */ }
        function connect() { /* ... */ }
    }
    namespace AnotherProject {
        const CONNECT_OK = 1;
        class Connection { /* ... */ }
        function connect() { /* ... */ }
    }
?>

実際のプログラミングの実践では、同じファイル内で複数の名前空間を定義することは強くお勧めできません。この方法は主に、複数の PHP スクリプトを同じファイルにマージするために使用されます。

グローバル非名前空間コードと名前空間内のコードを組み合わせるには、中括弧構文のみを使用できます。グローバル コードは、名前のない名前空間ステートメントとともに中括弧で囲む必要があります。例:

例 #3 複数の名前空間と名前空間に含まれないコードを定義する

<?php
    namespace MyProject {
        const CONNECT_OK = 1;
        class Connection { /* ... */ }
        function connect() { /* ... */ }
    }
    namespace { // global code
        session_start();
        $a = MyProject\connect();
        echo MyProject\Connection::start();
    }
?>

最初の宣言ステートメントに加えて、名前付けスペース括弧の外側の PHP コード。

例 #4 複数の名前空間と名前空間に含まれないコードの定義

<?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();
    }
?>


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。