摘要:另外,在目錄外訪問文件時(shí),我們必須將目錄名以及目錄分隔符放在文件名之前得到。這就是命名空間,其目的是為了區(qū)分不同目錄的同一文件,或者同一方法。為很長(zhǎng)的標(biāo)識(shí)符名稱通常是為了緩解第一類問題而定義的創(chuàng)建一個(gè)別名或簡(jiǎn)短的名稱,提高源代碼的可讀性。
1.什么是命名空間?
文件 foo.txt 可以同時(shí)在目錄/home/greg 和 /home/other 中存在, 但在同一個(gè)目錄中不能存在兩個(gè) foo.txt 文件。另外,在目錄/home/greg 外訪問 foo.txt 文件時(shí),我們必須將目錄名以及目錄分隔符放在文件名之前 得到 /home/greg/foo.txt。 這就是命名空間,其目的是為了區(qū)分不同目錄的同一文件,或者同一方法。 詳細(xì): 1. 用戶編寫的代碼與PHP內(nèi)部的類/函數(shù)/常量或第三方類/函數(shù)/常量之 間的名字沖突。 2.為很長(zhǎng)的標(biāo)識(shí)符名稱(通常是為了緩解第一類問題而定義的)創(chuàng)建一個(gè) 別名(或簡(jiǎn)短)的名稱,提高源代碼的可讀性。
2.php支持命名空間
php >=5.3.0 是支持命名空間的
3.命名空間關(guān)鍵字
PHP支持兩種抽象的訪問當(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://www.ezyhdfw.cn/yun/23226.html
摘要:原文發(fā)表在我的個(gè)人網(wǎng)站系列入門教程二最適合中國(guó)人的教程本教程示例代碼見大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。 原文發(fā)表在我的個(gè)人網(wǎng)站:Laravel 5 系列入門教程(二)【最適合中國(guó)人的 Laravel 教程】 本教程示例代碼見:https://github.com/johnlui/Learn-Laravel-5 大家在任何地方卡住,最快捷...
摘要:日期和時(shí)間使用類完成讀取設(shè)置比較和計(jì)算日期與時(shí)間。單元測(cè)試單元測(cè)試是從編寫開始,貫穿于整個(gè)開發(fā)周期的一種用于保證函數(shù)類和方法的行為與預(yù)期一致的編程方法。是應(yīng)用的單元測(cè)試框架的業(yè)界標(biāo)準(zhǔn),其他幾個(gè)可選框架是行為驅(qū)動(dòng)開發(fā)行為驅(qū)動(dòng)開發(fā)有兩種方式和。 《php之道》閱讀地址:http://wulijun.github.io/php-the-right-way/#code_style_guide ...
摘要:中命名空間可以解決兩類問題用戶編寫的代碼與內(nèi)部的類函數(shù)常量或第三方類函數(shù)常量之間的名字沖突。在沒定義命名空間的情況下,所有的常量類函數(shù)等都在全局空間下。注意訪問任意全局類函數(shù)或變量,都可以使用完全限定名稱,例如或者。 之前沒有系統(tǒng)學(xué)習(xí)過PHP語言,直接上手TP框架了,所以認(rèn)為namespace和use是TP框架的一部分,最近學(xué)習(xí)語言模塊的時(shí)候遇到了這個(gè)問題,所以匯總了一下。 PHP中...
摘要:可以在入口文件中定義,然后新建文件夾,達(dá)到將應(yīng)用配置放到該文件的目的,這樣方便將配置進(jìn)行統(tǒng)一管理。動(dòng)態(tài)配置返回?cái)?shù)據(jù)類型功能同上張三男請(qǐng)求成功 ThinkPHP5 ThinkPHP是一個(gè)免費(fèi)開源的、快速簡(jiǎn)單的、面向?qū)ο蟮摹⑤p量級(jí)PHP開發(fā)框架。 為什么選擇ThinkPHP5? ThinkPHP5采用了全新的架構(gòu)思想; 優(yōu)化了核心是一個(gè)顛覆性的版本; 支持composer方式安裝; 對(duì)...
摘要:前言在開始之前,歡迎關(guān)注我自己的博客這篇文章是對(duì)自動(dòng)加載功能的一個(gè)總結(jié),內(nèi)容涉及的自動(dòng)加載功能的命名空間的與標(biāo)準(zhǔn)等內(nèi)容。要實(shí)現(xiàn)第一步,第二步的功能,必須在開發(fā)時(shí)約定類名與磁盤文件的映射方法,只有這樣我們才能根據(jù)類名找到它對(duì)應(yīng)的磁盤文件。 前言 在開始之前,歡迎關(guān)注我自己的博客:www.leoyang90.cn 這篇文章是對(duì)PHP自動(dòng)加載功能的一個(gè)總結(jié),內(nèi)容涉及PHP的自動(dòng)加載功能、P...
閱讀 4034·2021-07-28 18:10
閱讀 2665·2019-08-30 15:44
閱讀 1193·2019-08-30 14:07
閱讀 3557·2019-08-29 17:20
閱讀 1658·2019-08-26 18:35
閱讀 3623·2019-08-26 13:42
閱讀 1895·2019-08-26 11:58
閱讀 1683·2019-08-23 18:33