<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 命名空間 命名空間(Namespace)表示標識符(identifier)的可見范圍。一個標識符可在多個命名空間中定義,它在不同命名空間中的含義是互不相干的。 簡單說來命名空間是為了解決不同庫在同一個環境下使用時出現的命名沖突。例如我自己有一個函數名叫 A,但是系統已經有一個 A 函數了,那就會出現沖突。 ### 全局空間 如果沒有定義任何命名空間,所有的類與函數的定義都是在全局空間,與 PHP 引入命名空間概念前一樣。在名稱前加上前綴 \ 表示該名稱是全局空間中的名稱。 ### 定義命名空間 - 在定義的命名空間之前不能有任何輸出。如 html 代碼等。 - 在聲明命名空間之前唯一合法的代碼是用于定義源文件編碼方式的 declare 語句,如:declare(encoding='UTF-8'); - 只在文件開頭進行命名空間定義,并且只定義一個。 - 通常命名空間要遵循 PSR-0 命名規范(命名空間和目錄結構保持一致)。 **注意:** 只有 const, function, class 受命名空間的約束。 文件 foo.php ``` <?php namespace app\foo; const E_ERROR = 'foo_error'; function md5($str) { return \md5('123'. $str . '123'); } class Test { public function getNamespace() { return __NAMESPACE__; } } ?> ``` 文件 bar.php ``` <?php namespace app\bar; const E_ERROR = 'bar_error'; function md5($str) { return \md5('abc'. $str . 'abc'); } class Test { public function getNamespace() { return __NAMESPACE__; } } ?> ``` ### 使用命名空間 **元素引用** 命名空間中元素的三種引用方式: - 非限定名稱:訪問當前命名空間。(在當前文件中直接使用) - 限定名稱:類似于相對路徑,訪問當前空間下的子命名空間,如:new People\Person(); - 完全限定名稱:類似于絕對路徑,訪問全局空間,如:new \Person(); **導入/別名** 允許通過別名引用或導入外部的完全限定名稱,是命名空間的一個重要特征。這有點類似于在類 unix 文件系統中可以創建對其它的文件或目錄的符號連接。 在 PHP 中,別名是通過 use 操作符來實現的; ``` <?php namespace app\test; use app\foo; use app\bar as BB; require 'foo.php'; require 'bar.php'; class Test { public function printNamespace() { return __NAMESPACE__; } } /*----------- 引用靜態變量 ----------- */ echo '全局命名空間下的靜態變量:' . \E_ERROR . PHP_EOL; echo 'app\foo 命名空間下的靜態變量:' . foo\E_ERROR . PHP_EOL; echo 'app\bar 命名空間下的靜態變量:' . BB\E_ERROR . PHP_EOL; /*----------- 引用函數 ----------- */ echo '全局命名空間下的函數:' . \md5('hello') . PHP_EOL; echo 'app\foo 命名空間下的函數:' . foo\md5('hello') . PHP_EOL; echo 'app\bar 命名空間下的函數:' . BB\md5('hello') . PHP_EOL; /*----------- 引用類 ----------- */ $curTest = new Test(); $fooTest = new foo\Test(); $barTest = new BB\Test(); echo '當前命名空間下的方法:' . $curTest->getNamespace() . PHP_EOL; echo 'app\foo 命名空間下的方法:' . $fooTest->getNamespace() . PHP_EOL; echo 'app\bar 命名空間下的方法:' . $barTest->getNamespace() . PHP_EOL; ?> ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看