本篇文章將開始介紹命名空間。命名空間是一種封裝事物的方法,在許多地方都可以看到這種抽象概念。今天我們就來介紹介紹,有需要的可以參考一下。
首先,我們先了解什麼是命名空間。 (有需要的可以參考PHP 命名空間)
在PHP中,名稱空間可以解決編寫類別庫或應用程式(如類別或函數),創建可重複使用程式碼時,所遇到的問題:
使用者寫的程式碼名稱與PHP中的類別/函數/常數或第三方類別/函數/常數的名稱發生衝突。
為使用者編寫的很長的識別碼名稱建立一個別名(或簡短),提高原始程式碼的可讀性。
PHP的命名空間提供了將相關的類別、函數和常數組合在一起的途徑。
現在就讓我們正式進入今天的介紹,如何定義一個命名空間。
首先我們來看一個小栗子。
<?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(); } ?>
我們觀察一下,發現在這兩段程式碼中,都有一個共同的特點,就是有關鍵字“namespace
”,但是關鍵字後面卻不一樣,這是什麼原因呢?等我們學習了命名空間知識之後,就會知道啦。
預設情況下,所有常數、類別和函數名稱都放在全域空間中,就像PHP支援的名稱空間之前一樣。
命名空間透過關鍵字namespace
來宣告。如果一個檔案中包含命名空間,它必須在其它所有程式碼之前聲明命名空間。語法格式如下;
<?php // 定义代码在 'MyProject' 命名空间中 namespace MyProject; // ... 代码 ...
並且,我們可以在同一個檔案中定義不同的命名空間程式碼。但是,將全域非命名空間中的程式碼與命名空間中的程式碼組合時,只能使用大括號中的語法。全域程式碼必須用未命名的namespace語句括在大括號中。
同時,宣告名稱空間之前唯一有效的程式碼是定義原始檔編碼的declare語句。所有非PHP代碼(包括空格)都不能出現在名稱空間聲明之前。
命名空間的命名就說到這裡了,有其他想知道的,可以點選這個喔。 → →php影片教學
#以上是php命名空間之如何定義空間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!