电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

PHP命名空間概念解析

瀏覽:4日期:2022-09-13 15:58:11
1. PHP中的命名空間是什么?

什么是命名空間?“從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念。例如,在操作系統(tǒng)中目錄用來將相關(guān)文件分組,對于目錄中的文件來說,它就扮演了命名空間的角色。具體舉個(gè)例子,文件 foo.txt 可以同時(shí)在目錄/home/greg 和 /home/other 中存在,但在同一個(gè)目錄中不能存在兩個(gè) foo.txt 文件。另外,在目錄 /home/greg 外訪問 foo.txt 文件時(shí),我們必須將目錄名以及目錄分隔符放在文件名之前得到 /home/greg/foo.txt。這個(gè)原理應(yīng)用到程序設(shè)計(jì)領(lǐng)域就是命名空間的概念。”——命名空間概述

2. PHP命名空間該如何理解?

從本質(zhì)上講,命名空間就是一個(gè)容器,這個(gè)容器內(nèi)我們可以放入類、函數(shù)和變量,他們在同一命名空間內(nèi)可以無條件相互訪問。在命名空間之外,就必須引用或者導(dǎo)入其他命名空間,才能調(diào)用它們包含的這些項(xiàng)。

命名空間跟shell中的文件目錄的概念是一樣一樣的。在當(dāng)前目錄下可以直接用文件名訪問所有文件,如果需要訪問其他目錄下的文件,就需要輸入相對路徑或絕對路徑。引用方式:

namespace foo; class Foo { public function foo() { return topnamespacebarBar::fuck(); } }

導(dǎo)入方式:

namespace foo; use topnamespacebarBar; class Foo {public function foo() {

return Bar::fuck(); } }

導(dǎo)入就相當(dāng)于將目的類復(fù)制一份到當(dāng)前命名空間中。

3. PHP命名空間有何實(shí)際應(yīng)用?

命名空間的存在是為了解決下面兩個(gè)問題:

1. 用戶編寫的代碼與PHP內(nèi)部的類/函數(shù)/常量或第三方類/函數(shù)/常量之間的名字沖突。

2. 為很長的標(biāo)識符名稱(通常是為了緩解第一類問題而定義的)創(chuàng)建一個(gè)別名(或簡短)的名稱,提高源代碼的可讀性。

 4. 一些tips

1. 同一個(gè)空間下的類直接相互直接調(diào)用,屬于一家。例如 Laravel 中的 PageController 類中可以直接寫 Page::all() 這樣的代碼來調(diào)用 Page 這個(gè)model,因?yàn)樗麄儌z都在頂級命名空間下。

2. 若一個(gè)類存在于非頂級命名空間中,那么它只能在調(diào)用同樣是當(dāng)前命名空間下的其他類才不用“引用”或“導(dǎo)入”,它們屬于一家。任何子命名空間都是另一個(gè)命名空間,另一個(gè)容器,沒有除了容器之間關(guān)系之外的任何特殊關(guān)系。

3. Laravel 采用 classmap 方式進(jìn)行自動加載(autoload),PHP雖然有了命名空間這個(gè)高級特性,但是這只是邏輯關(guān)系,require 文件還是要有的。這個(gè)類和文件的對應(yīng)關(guān)系就存在 /vendor/composer/autoload_classmap.php ,每次 composer dump-autoload 都會重新編譯、生成。

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 三防漆–水性三防漆–水性浸渍漆–贝塔三防漆厂家 | 防渗膜厂家|养殖防渗膜|水产养殖防渗膜-泰安佳路通工程材料有限公司 | 九州网址_专注于提供网址大全分享推广中文网站导航服务 | 超声波流量计_流量标准装置生产厂家 _河南盛天精密测控 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 盘装氧量分析仪-防爆壁挂氧化锆分析仪-安徽吉帆仪表有限公司 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 土壤养分检测仪_肥料养分检测仪_土壤水分检测仪-山东莱恩德仪器 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 冷柜风机-冰柜电机-罩极电机-外转子风机-EC直流电机厂家-杭州金久电器有限公司 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 便携式高压氧舱-微压氧舱-核生化洗消系统-公众洗消站-洗消帐篷-北京利盟救援 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 空气能暖气片,暖气片厂家,山东暖气片,临沂暖气片-临沂永超暖通设备有限公司 | 校服厂家,英伦校服定做工厂,园服生产定制厂商-东莞市艾咪天使校服 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 超声波流量计_流量标准装置生产厂家 _河南盛天精密测控 | 防爆电机-高压防爆电机-ybx4电动机厂家-河南省南洋防爆电机有限公司 | 设计圈 - 让设计更有价值!| 博博会2021_中国博物馆及相关产品与技术博览会【博博会】 | 地图标注-手机导航电子地图如何标注-房地产商场地图标记【DiTuBiaoZhu.net】 | 耐酸泵,耐酸泵厂家-淄博华舜耐腐蚀真空泵 | (中山|佛山|江门)环氧地坪漆,停车场地板漆,车库地板漆,聚氨酯地板漆-中山永旺地坪漆厂家 | 涡街流量计_LUGB智能管道式高温防爆蒸汽温压补偿计量表-江苏凯铭仪表有限公司 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 | 避光流动池-带盖荧光比色皿-生化流动比色皿-宜兴市晶科光学仪器 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 一体化污水处理设备_生活污水处理设备_全自动加药装置厂家-明基环保 | 联系我们-腾龙公司上分客服微信19116098882 | 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 次氯酸钠厂家,涉水级次氯酸钠,三氯化铁生产厂家-淄博吉灿化工 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 伺服电机_直流伺服_交流伺服_DD马达_拓达官方网站 | 外贸网站建设-外贸网站设计制作开发公司-外贸独立站建设【企术】 | 2025第九届世界无人机大会 | 锤式粉碎机,医药粉碎机,锥式粉碎机-无锡市迪麦森机械制造有限公司 | 刑事律师_深圳著名刑事辩护律师_王平聚【清华博士|刑法教授】 |