首頁  >  文章  >  後端開發  >  php在同一個檔案中定義多個命名空間

php在同一個檔案中定義多個命名空間

伊谢尔伦
伊谢尔伦原創
2016-11-23 10:59:361220瀏覽

Example #1 定義多個命名空間,簡單組合語法

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

不建議使用這種語法在單一檔案中定義多個命名空間。建議使用下面的大括號形式的語法。

Example #2 定義多個命名空間,大括號語法

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

在實際的程式設計實踐中,非常不提倡在同一個檔案中定義多個命名空間。這種方式的主要用於將多個 PHP 腳本合併在同一個檔案中。

將全域的非命名空間中的程式碼與命名空間中的程式碼組合在一起,只能使用大括號形式的語法。全域程式碼必須用一個不帶名稱的namespace 語句加上大括號括起來,例如:

Example #3 定義多個命名空間和不包含在命名空間中的程式碼

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

除了開始的declare語句外,命名空間的括號外不得有任何PHP代碼。

Example #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