首頁  >  文章  >  後端開發  >  php命名空間之如何定義空間?

php命名空間之如何定義空間?

醉折花枝作酒筹
醉折花枝作酒筹原創
2021-07-30 10:14:421621瀏覽

本篇文章將開始介紹命名空間。命名空間是一種封裝事物的方法,在許多地方都可以看到這種抽象概念。今天我們就來介紹介紹,有需要的可以參考一下。

首先,我們先了解什麼是命名空間。 (有需要的可以參考PHP 命名空間

在PHP中,名稱空間可以解決編寫類別庫或應用程式(如類別或函數),創建可重複使用程式碼時,所遇到的問題:

  • 使用者寫的程式碼名稱與PHP中的類別/函數/常數或第三方類別/函數/常數的名稱發生衝突。

  • 為使用者編寫的很長的識別碼名稱建立一個別名(或簡短),提高原始程式碼的可讀性。

PHP的命名空間提供了將相關的類別、函數和常數組合在一起的途徑。

現在就讓我們正式進入今天的介紹,如何定義一個命名空間。

首先我們來看一個小栗子。

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

我們觀察一下,發現在這兩段程式碼中,都有一個共同的特點,就是有關鍵字“namespace”,但是關鍵字後面卻不一樣,這是什麼原因呢?等我們學習了命名空間知識之後,就會知道啦。

預設情況下,所有常數、類別和函數名稱都放在全域空間中,就像PHP支援的名稱空間之前一樣。

命名空間透過關鍵字namespace來宣告。如果一個檔案中包含命名空間,它必須在其它所有程式碼之前聲明命名空間。語法格式如下;

<?php  
// 定义代码在 &#39;MyProject&#39; 命名空间中  
namespace MyProject;  
 
// ... 代码 ...

並且,我們可以在同一個檔案中定義不同的命名空間程式碼。但是,將全域非命名空間中的程式碼與命名空間中的程式碼組合時,只能使用大括號中的語法。全域程式碼必須用未命名的namespace語句括在大括號中。

同時,宣告名稱空間之前唯一有效的程式碼是定義原始檔編碼的declare語句。所有非PHP代碼(包括空格)都不能出現在名稱空間聲明之前。

命名空間的命名就說到這裡了,有其他想知道的,可以點選這個喔。 → →php影片教學

#

以上是php命名空間之如何定義空間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn