摘要:另外,在目錄外訪問(wèn)文件時(shí),我們必須將目錄名以及目錄分隔符放在文件名之前得到。這就是命名空間,其目的是為了區(qū)分不同目錄的同一文件,或者同一方法。為很長(zhǎng)的標(biāo)識(shí)符名稱(chēng)通常是為了緩解第一類(lèi)問(wèn)題而定義的創(chuàng)建一個(gè)別名或簡(jiǎn)短的名稱(chēng),提高源代碼的可讀性。
1.什么是命名空間?
文件 foo.txt 可以同時(shí)在目錄/home/greg 和 /home/other 中存在, 但在同一個(gè)目錄中不能存在兩個(gè) foo.txt 文件。另外,在目錄/home/greg 外訪問(wèn) foo.txt 文件時(shí),我們必須將目錄名以及目錄分隔符放在文件名之前 得到 /home/greg/foo.txt。 這就是命名空間,其目的是為了區(qū)分不同目錄的同一文件,或者同一方法。 詳細(xì): 1. 用戶(hù)編寫(xiě)的代碼與PHP內(nèi)部的類(lèi)/函數(shù)/常量或第三方類(lèi)/函數(shù)/常量之 間的名字沖突。 2.為很長(zhǎng)的標(biāo)識(shí)符名稱(chēng)(通常是為了緩解第一類(lèi)問(wèn)題而定義的)創(chuàng)建一個(gè) 別名(或簡(jiǎn)短)的名稱(chēng),提高源代碼的可讀性。
2.php支持命名空間
php >=5.3.0 是支持命名空間的
3.命名空間關(guān)鍵字
PHP支持兩種抽象的訪問(wèn)當(dāng)前命名空間內(nèi)部元素的方法: __NAMESPACE__ 魔術(shù)常量 namespace 關(guān)鍵字 例如: namespace test; echo __NAMESPACE__; 輸出結(jié)果: test
4.簡(jiǎn)單例子
namespace test; define("testHELLO","hello world!"); define(__NAMESPACE__ . "GOODBYE","goodbye cruel world"); define("GOODBYE","hahahha"); echo HELLO; echo "
"; echo GOODBYE; echo "
"; echo GOODBYE; echo "
"; echo estGOODBYE; echo "
"; echo testGOODBYE; //Fatal error: Undefined constant "test estGOODBYE" in /mnt/hgfs/www/test/test.php on line 16 //會(huì)找不到test 所以要在之前加 表明當(dāng)前test
結(jié)果
5.調(diào)用命名空間
namespace test; namespace home; class mao { public function __construct() {} /** * echo */ public function mao_test() { echo "hello my namespace test"; } } use homemao as hahah; $obj = new hahah(); $obj->mao_test();
結(jié)果
6.多個(gè)命名空間的引用
test.php
namespace home; class mao { public function __construct() {} /** * echo */ public function mao_test() { echo "hello my namespace test"; } } namespace home2; class mao { public function __construct() {} /** * echo */ public function mao_test() { echo "hello my namespace test2"; } }
index.php
namespace test; require_once("test.php"); use homemao as java; $obj = new java(); $obj->mao_test(); echo "
"; use home2mao as hah; $obj = new hah(); $obj->mao_test();
結(jié)果
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/23226.html
摘要:原文發(fā)表在我的個(gè)人網(wǎng)站系列入門(mén)教程二最適合中國(guó)人的教程本教程示例代碼見(jiàn)大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。 原文發(fā)表在我的個(gè)人網(wǎng)站:Laravel 5 系列入門(mén)教程(二)【最適合中國(guó)人的 Laravel 教程】 本教程示例代碼見(jiàn):https://github.com/johnlui/Learn-Laravel-5 大家在任何地方卡住,最快捷...
摘要:日期和時(shí)間使用類(lèi)完成讀取設(shè)置比較和計(jì)算日期與時(shí)間。單元測(cè)試單元測(cè)試是從編寫(xiě)開(kāi)始,貫穿于整個(gè)開(kāi)發(fā)周期的一種用于保證函數(shù)類(lèi)和方法的行為與預(yù)期一致的編程方法。是應(yīng)用的單元測(cè)試框架的業(yè)界標(biāo)準(zhǔn),其他幾個(gè)可選框架是行為驅(qū)動(dòng)開(kāi)發(fā)行為驅(qū)動(dòng)開(kāi)發(fā)有兩種方式和。 《php之道》閱讀地址:http://wulijun.github.io/php-the-right-way/#code_style_guide ...
摘要:中命名空間可以解決兩類(lèi)問(wèn)題用戶(hù)編寫(xiě)的代碼與內(nèi)部的類(lèi)函數(shù)常量或第三方類(lèi)函數(shù)常量之間的名字沖突。在沒(méi)定義命名空間的情況下,所有的常量類(lèi)函數(shù)等都在全局空間下。注意訪問(wèn)任意全局類(lèi)函數(shù)或變量,都可以使用完全限定名稱(chēng),例如或者。 之前沒(méi)有系統(tǒng)學(xué)習(xí)過(guò)PHP語(yǔ)言,直接上手TP框架了,所以認(rèn)為namespace和use是TP框架的一部分,最近學(xué)習(xí)語(yǔ)言模塊的時(shí)候遇到了這個(gè)問(wèn)題,所以匯總了一下。 PHP中...
摘要:可以在入口文件中定義,然后新建文件夾,達(dá)到將應(yīng)用配置放到該文件的目的,這樣方便將配置進(jìn)行統(tǒng)一管理。動(dòng)態(tài)配置返回?cái)?shù)據(jù)類(lèi)型功能同上張三男請(qǐng)求成功 ThinkPHP5 ThinkPHP是一個(gè)免費(fèi)開(kāi)源的、快速簡(jiǎn)單的、面向?qū)ο蟮摹⑤p量級(jí)PHP開(kāi)發(fā)框架。 為什么選擇ThinkPHP5? ThinkPHP5采用了全新的架構(gòu)思想; 優(yōu)化了核心是一個(gè)顛覆性的版本; 支持composer方式安裝; 對(duì)...
摘要:前言在開(kāi)始之前,歡迎關(guān)注我自己的博客這篇文章是對(duì)自動(dòng)加載功能的一個(gè)總結(jié),內(nèi)容涉及的自動(dòng)加載功能的命名空間的與標(biāo)準(zhǔn)等內(nèi)容。要實(shí)現(xiàn)第一步,第二步的功能,必須在開(kāi)發(fā)時(shí)約定類(lèi)名與磁盤(pán)文件的映射方法,只有這樣我們才能根據(jù)類(lèi)名找到它對(duì)應(yīng)的磁盤(pán)文件。 前言 在開(kāi)始之前,歡迎關(guān)注我自己的博客:www.leoyang90.cn 這篇文章是對(duì)PHP自動(dòng)加載功能的一個(gè)總結(jié),內(nèi)容涉及PHP的自動(dòng)加載功能、P...
閱讀 3954·2021-07-28 18:10
閱讀 2647·2019-08-30 15:44
閱讀 1165·2019-08-30 14:07
閱讀 3518·2019-08-29 17:20
閱讀 1645·2019-08-26 18:35
閱讀 3600·2019-08-26 13:42
閱讀 1876·2019-08-26 11:58
閱讀 1666·2019-08-23 18:33