溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php命名空間之怎么定義空間

發(fā)布時間:2021-07-30 10:44:51 來源:億速云 閱讀:102 作者:小新 欄目:編程語言

小編給大家分享一下php命名空間之怎么定義空間,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

在PHP中,名稱空間可以解決編寫類庫或應用程序(如類或函數(shù)),創(chuàng)建可重用代碼時,所遇到的問題:

  • 用戶編寫的代碼名稱與PHP中的類/函數(shù)/常量或第三方類/函數(shù)/常量的名稱發(fā)生沖突。

  • 為用戶編寫的很長的標識符名稱創(chuàng)建一個別名(或簡短),提高源代碼的可讀性。

PHP的命名空間提供了一種將相關的類、函數(shù)和常量組合到一起的途徑。

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

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

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

我們觀察一下,發(fā)現(xiàn)在這兩段代碼中,都有一個共同的特點,就是有關鍵詞“namespace”,但是關鍵詞后面卻并不一樣,這是什么原因呢?等我們學習了命名空間知識之后,就會知道啦。

默認情況下,所有常量、類和函數(shù)名都放在全局空間中,就像PHP支持的名稱空間之前一樣。

命名空間通過關鍵字namespace來聲明。如果一個文件中包含命名空間,它必須在其它所有代碼之前聲明命名空間。語法格式如下;

<?php  
// 定義代碼在 'MyProject' 命名空間中  
namespace MyProject;  
 
// ... 代碼 ...

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

同時,聲明名稱空間之前唯一有效的代碼是定義源文件編碼的declare語句。所有非PHP代碼(包括空格)都不能出現(xiàn)在名稱空間聲明之前。

以上是“php命名空間之怎么定義空間”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

php
AI