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