搜尋
首頁後端開發PHP問題php namespace的用法

php namespace的用法

Sep 28, 2020 am 10:58 AM
namespacephp

php namespace的用法:【namespace Article;】,表示建立一個名為Article的命名空間。要注意的是,目前腳本檔案的第一個命名空間前面不能有任何程式碼。

php namespace的用法

命名空間一個最明確的目的就是解決重名問題,PHP中不允許兩個函數或類別出現相同的名字,否則會產生一個致命的錯誤。這種情況只要避免命名重複就可以解決,最常見的做法就是約定一個前綴。

(推薦教學:php影片教學

命名空間將程式碼分割出不同的空間(區域),每個空間的常數、函數、類別(為了偷懶,我下邊都稱它們為元素)的名字互不影響, 這個有點類似我們常常提到的'封裝'的概念。

建立一個命名空間需要使用namespace關鍵字,這樣:

<?php
//创建一个名为&#39;Article&#39;的命名空间
namespace Article;
?>

要注意的是,目前腳本檔案的第一個命名空間前面不能有任何程式碼,下面的寫法都是錯誤的:

例一

//在脚本前面写了一些逻辑代码
<?php
$path = "/";
class Comment { }
namespace Article;
?>

例二

</html>
<?php
namespace Article;
?>

為什麼要說第一個命名空間呢?因為在同一腳本檔案中可以建立多個命名空間。

下面我創建了兩個命名空間,順便為這兩個空間各自添加了一個Comment類別元素:

<?php
//创建一个名为&#39;Article&#39;的命名空间
namespace Article;
//此Comment属于Article空间的元素
class Comment {
}
//创建一个名为&#39;MessageBoard&#39;的命名空间
namespace MessageBoard;
//此Comment属于MessageBoard空间的元素
class Comment {
}
?>

在不同空間之間不可以直接呼叫其它元素,需要使用命名空間的語法:

<?php
namespace Article;
class Comment {
}
namespace MessageBoard;
class Comment {
}
//调用当前空间(MessageBoard)的Comment类
$comment = new Comment();
//调用Article空间的Comment类
$article_comment = new \Article\Comment();
?>

可以看到,在MessageBoard空間中呼叫article空間裡的Comment類別時,使用了一個像檔案路徑的語法: \空間名稱\元素名稱

除了類別之外,對函數和常數的用法是一樣的,下面我為兩個空間創建了新的元素,並在MessageBoard空間中輸出了它們的值。

<?php
namespace Article;
const PATH = &#39;/article&#39;;
function getCommentTotal() {
	return 100;
}
class Comment {
}
namespace MessageBoard;
const PATH = &#39;/message_board&#39;;
function getCommentTotal() {
	return 300;
}
class Comment {
}
//调用当前空间的常量、函数和类
echo PATH;
///message_board
echo getCommentTotal();
//300
$comment = new Comment();
//调用Article空间的常量、函数和类
echo \Article\PATH;
///article
echo \Article\getCommentTotal();
//100
$article_comment = new \Article\Comment();
?>

然後我的確得到了Article空間的元素資料。

相關推薦:php培訓

以上是php namespace的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器