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

您的位置:首頁技術文章
文章詳情頁

如何理解PHP核心特性命名空間

瀏覽:5日期:2022-09-07 10:46:51
目錄提出定義使用限定符在內部訪問命名空間轉義符號提出

PHP 在 5.3 后提出了命名空間用來解決組件之間的命名沖突問題,主要參考了文件系統的設計:

同一個目錄下不允許有相同的文件名 - 同一個命名空間下不允許有相同的類; 不同的目錄可以有同名文件 - 不同的命名空間可以有相同的類;定義

使用namespace關鍵字來定義一個命名空間。其中,頂層命名空間通常為廠商名,不同開發者的廠商命名空間是唯一的。命名空間不需要與文件目錄一一對應,但是最好遵守PSR-4規范。

<?phpnamespace SymfonyComponentHttpFoundation;class Request {}命名空間必須在所有代碼之前聲明,唯一的例外就是 declare 關鍵字。<?phpdeclare(strict_types=1);namespace App;

命名空間內可包含任意 PHP 代碼,但是僅對類 (包括抽象類和 Trait)、接口、函數和常量這四種類型生效。

<?phpnamespace MyProject;const CONNECT_OK = 1;class FOO {}interface Foo{}function foo() {}使用

使用use關鍵字來引入命名空間

<?phpnamespace App;use SymfonyComponentHttpFoundationRequest;use FooBar;class Test { public function run() {$bar = new Bar(); }}

定義和使用推薦遵循PSR-2的規范

namespace之后必須存在一個空行; 所有use聲明必須位于namespace聲明之后; 每條use聲明必須只有一個use關鍵字。

use語句塊之后必須存在一個空行。

當use引入的類出現同名時,可使用as來定義別名

<?phpnamespace App;use FooBar as BaseBar;class Bar extends BaseBar {}限定符

除了使用use外,還可以直接使用限定符來進行解析,規則很簡單:如果含有前綴則代表從全局命名空間開始解析,否則則代表從當前命名空間開始解析。

<?phpnamespace App;FooBarfoo(); // 解析成 FooBarfoo();FooBarfoo(); // 解析成 AppFooBarfoo();此規則也適用于函數、常量等$a = strlen(’hi’); // 調用全局函數 strlen$b = INI_ALL; // 訪問全局常量 INI_ALL$c = new Exception(’error’); // 實例化全局類 Exception

有兩個需要特別注意的地方:

對于函數和常量而言,如果當前命名空間不存在,則會自動去全局命名空間去尋找,因此可省略前綴。對于類而言,如果當前命名空間解析不到,不會去全局空間尋找,因此,不可省略

$a = strlen(’hi’);$b = INI_ALL;$c = new Exception(’error’); // 錯誤$c = new Exception(’error’); // 正確

當動態調用命名空間時,該命名空間始終會被當成是全局命名空間,因此可以省略前綴

$class1 = ’FooBar’;$object1 = new $class1; // 始終被解析成 FooBar在內部訪問命名空間

PHP 支持兩種抽象的訪問當前命名空間內部元素的方法,__NAMESPACE__魔術常量和namespace關鍵字。

__NAMESPACE__常量的值是包含當前命名空間名稱的字符串,如果是在全局命名空間,則返回空字符串。

<?phpnamespace MyProject;function get($classname){ $a = __NAMESPACE__ . ’’ . $classname; return new $a;}

關鍵字namespace可用來顯式訪問當前命名空間或子命名空間中的元素。它等價于類中的self操作符

namespace App;use blahblah as mine;blahmine(); // Appblahmine()namespaceblahmine(); // Appblahmine()namespacefunc(); // Appfunc()namespacesubfunc(); // Appsubfunc()namespacecname::method(); // Appcname::method()$a = new namespacesubcname(); // Appsubcname$b = namespaceCONSTANT; // AppCONSTANT轉義符號

此外,推薦對所有的進行轉義,避免出現不可預期的后果

$class = 'dangerousname'; // n 被解析成換行符$obj = new $class;$class = ’dangerousname’; // 正確,但是不推薦$class = ’dangerousname’; // 推薦$class = 'dangerousname'; // 推薦

以上就是如何理解PHP核心特性命名空間的詳細內容,更多關于PHP命名空間的資料請關注好吧啦網其它相關文章!

標簽: PHP
相關文章:
主站蜘蛛池模板: 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 江苏皓越真空设备有限公司| 许昌奥仕达自动化设备有限公司 | 软启动器-上海能曼电气有限公司| uv机-uv灯-uvled光固化机-生产厂家-蓝盾机电 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 心得体会网_心得体会格式范文模板| 轻型地埋电缆故障测试仪,频响法绕组变形测试仪,静荷式卧式拉力试验机-扬州苏电 | 网站seo优化_seo云优化_搜索引擎seo_启新网络服务中心 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 江西自考网 | 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 水热合成反应釜-防爆高压消解罐-西安常仪仪器设备有限公司 | 语料库-提供经典范文,文案句子,常用文书,您的写作得力助手 | 电磁铁_推拉电磁铁_机械手电磁吸盘电磁铁厂家-广州思德隆电子公司 | 合肥抖音SEO网站优化-网站建设-网络推广营销公司-百度爱采购-安徽企匠科技 | TPU薄膜_TPU薄膜生产厂家_TPU热熔胶膜厂家定制_鑫亘环保科技(深圳)有限公司 | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 电子书导航网_电子书之家_电子书大全_最新电子书分享发布平台 | 仿真植物|仿真树|仿真花|假树|植物墙 - 广州天昆仿真植物有限公司 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 塑胶跑道_学校塑胶跑道_塑胶球场_运动场材料厂家_中国塑胶跑道十大生产厂家_混合型塑胶跑道_透气型塑胶跑道-广东绿晨体育设施有限公司 | 定制/定做衬衫厂家/公司-衬衫订做/订制价格/费用-北京圣达信 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 传动滚筒,改向滚筒-淄博建凯机械科技有限公司 | 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 软文推广发布平台_新闻稿件自助发布_媒体邀约-澜媒宝 | 便携式表面粗糙度仪-彩屏硬度计-分体式粗糙度仪-北京凯达科仪科技有限公司 | 全球化工设备网—化工设备,化工机械,制药设备,环保设备的专业网络市场。 | 卫生型双针压力表-高温防腐差压表-安徽康泰电气有限公司 |