phpnamespace的用法

php namespace的用法:【namespace Article;】,表示創(chuàng)建一個(gè)名為Article的命名空間。需要注意的是,當(dāng)前腳本文件的第一個(gè)命名空間前面不能有任何代碼。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都網(wǎng)站制作、簡(jiǎn)陽(yáng)網(wǎng)絡(luò)推廣、小程序制作、簡(jiǎn)陽(yáng)網(wǎng)絡(luò)營(yíng)銷、簡(jiǎn)陽(yáng)企業(yè)策劃、簡(jiǎn)陽(yáng)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供簡(jiǎn)陽(yáng)建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:muchs.cn

命名空間一個(gè)最明確的目的就是解決重名問題,PHP中不允許兩個(gè)函數(shù)或者類出現(xiàn)相同的名字,否則會(huì)產(chǎn)生一個(gè)致命的錯(cuò)誤。這種情況下只要避免命名重復(fù)就可以解決,最常見的一種做法是約定一個(gè)前綴。

(推薦教程:php視頻教程)

命名空間將代碼劃分出不同的空間(區(qū)域),每個(gè)空間的常量、函數(shù)、類(為了偷懶,我下邊都將它們稱為元素)的名字互不影響, 這個(gè)有點(diǎn)類似我們常常提到的'封裝'的概念。

創(chuàng)建一個(gè)命名空間需要使用namespace關(guān)鍵字,這樣:

<?php
//創(chuàng)建一個(gè)名為'Article'的命名空間
namespace Article;
?>

要注意的是,當(dāng)前腳本文件的第一個(gè)命名空間前面不能有任何代碼,下面的寫法都是錯(cuò)誤的:

例一

//在腳本前面寫了一些邏輯代碼
<?php
$path = "/";
class Comment { }
namespace Article;
?>

例二

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

為什么要說第一個(gè)命名空間呢?因?yàn)橥荒_本文件中可以創(chuàng)建多個(gè)命名空間。

下面我創(chuàng)建了兩個(gè)命名空間,順便為這兩個(gè)空間各自添加了一個(gè)Comment類元素:

<?php
//創(chuàng)建一個(gè)名為'Article'的命名空間
namespace Article;
//此Comment屬于Article空間的元素
class Comment {
}
//創(chuàng)建一個(gè)名為'MessageBoard'的命名空間
namespace MessageBoard;
//此Comment屬于MessageBoard空間的元素
class Comment {
}
?>

在不同空間之間不可以直接調(diào)用其它元素,需要使用命名空間的語(yǔ)法:

<?php
namespace Article;
class Comment {
}
namespace MessageBoard;
class Comment {
}
//調(diào)用當(dāng)前空間(MessageBoard)的Comment類
$comment = new Comment();
//調(diào)用Article空間的Comment類
$article_comment = new \\Article\\Comment();
?>

可以看到,在MessageBoard空間中調(diào)用article空間里的Comment類時(shí),使用了一種像文件路徑的語(yǔ)法: \\空間名\\元素名

除了類之外,對(duì)函數(shù)和常量的用法是一樣的,下面我為兩個(gè)空間創(chuàng)建了新的元素,并在MessageBoard空間中輸出了它們的值。

<?php
namespace Article;
const PATH = '/article';
function getCommentTotal() {
	return 100;
}
class Comment {
}
namespace MessageBoard;
const PATH = '/message_board';
function getCommentTotal() {
	return 300;
}
class Comment {
}
//調(diào)用當(dāng)前空間的常量、函數(shù)和類
echo PATH;
///message_board
echo getCommentTotal();
//300
$comment = new Comment();
//調(diào)用Article空間的常量、函數(shù)和類
echo \\Article\\PATH;
///article
echo \\Article\\getCommentTotal();
//100
$article_comment = new \\Article\\Comment();
?>

然后我的確得到了Article空間的元素?cái)?shù)據(jù)。

相關(guān)推薦:php培訓(xùn)

當(dāng)前題目:phpnamespace的用法
本文地址:http://muchs.cn/article46/checeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航網(wǎng)站排名、定制網(wǎng)站靜態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)