PHP 命名空间(namespace)是在PHP 5.3版本中加入的。

PHP 命名空间是用来解决以下两类问题的:

  1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
  2. 为很长的标识符名称创建一个别名的名称,提高源代码的可读性

首先我们先建立三个文件

第一个文件 A.php,里边有两个类,命名空间namesapce是 a\b\c(注意:这里是反斜杠);

<?php
namespace a\b\c;class Apply{function get_info(){echo 'this is A Apply';}
}class C{function info(){echo 'this is info';}
}
?>

第二个文件 B.php  命名空间namespace a\b\d;

<?php
namespace a\b\d;class Apply{function get_info(){echo 'this is B Apply';}
}
?>

第三个文件 index.php 里需要使用到上边两个文件的类。

那么现在问题来了:比方说我们现在想实例化A.php里的类,该怎么实现呢?A文件的 Apply类和B.php的Apply类重名了,直接引入使用是会报错的!

这个时候命名空间就要出场了

首先要包含这个文件 require_once('A.php');

use的用法要这样,命名空间 \ 这个空间下你要实例化类的类名。比方说我们要实例化上面的 A.php文件里的Apply类,使用 use a\b\c\Apply;  就相当于引入这个类,接下来再  new Apply();调用里边的方法,跟平常是一样的。如果要实例化类C,就 use a\b\c\C;。

记得点赞收藏关注我♪(^∀^●)ノ,让小哥哥带你闯荡互联网开发的世界♥♥♥♥♥

转载于:https://www.cnblogs.com/lucklyphp/p/10559633.html

简单易懂的PHP的命名空间以及配合use的使用相关推荐

  1. .Net 中的反射(序章) - Part.1

    引言 反射是.Net提供给我们的一件强力武器,尽管大多数情况下我们不常用到反射,尽管我们可能也不需要精通它,但对反射的使用作以初步了解在日后的开发中或许会有所帮助. 反射是一个庞大的话题,牵扯到的知识 ...

  2. Django路由写法

    DjangoURL调度器 – 潘登同学的后端笔记 文章目录 DjangoURL调度器 -- 潘登同学的后端笔记 工作原理 请求参数 自定义路径转换器 直接写正则路径re_path() 错误处理 引入其 ...

  3. Nacos服务的注册,服务的调用,修改配置文件自动刷新和命名空间

    一.nacos配置中心的配置 使用nacos作为配置中心,不需要再到远端仓库拉取配置文件. 详细的nacos控制台配置参见官方链接 二.服务的注册 创建项目并引入依赖 <!--引入nacos c ...

  4. 【OpenCV】OpenCV实战从入门到精通之 -- 指针访问、迭代器iterator、动态地址计算配合at元素

    目录 1.指针访问像素 2.迭代器操作像素 3.动态地址计算 OpenCV中,有三种方式访问图像像素: 指针访问:C操作符[]: 迭代器iterator 动态地址计算 上述方法在访问速度上略有差异.d ...

  5. Spring context命名空间

    (补充:之前我们使用property标签进行依赖注入的时候,Spring框架会获取property的name属性,调用set+Name();对该属性进行注入) 一个配置文件中,需要进行管理的bean的 ...

  6. vSphere 7 With K8s系列06:创建命名空间

    vSphere 7 With K8s系列06:创建命名空间 原创 李严省 虚实之路 9月24日 收录于话题 #vSphere with K8s 9个 上一篇文章已经介绍了如何开启vSphere7 wi ...

  7. linux 命名空间Namespace机制【转】

    原文:http://blog.csdn.net/preterhuman_peak/article/details/40857117 Linux Namespaces机制提供一种资源隔离方案.PID,I ...

  8. apicloud命名空间$api方法集合

    命名空间为api,所有方法如下(摘自官网https://docs.apicloud.com/Front−end−Framework/framework−dev−guide):1.api,所有方法如下( ...

  9. Linux 网络命名空间

    虚拟网络基础 bridge TAP 设备与 VETH 设备 netns 网络命名空间 虚拟网络创建 iproute2 创建新的网络命名空间 显示所有的虚拟网络命名空间 进入虚拟网络环境 设置虚拟网络环 ...

最新文章

  1. 全文检索lucene中文分词的一些总结
  2. 会计基础第一章模拟试题(1)
  3. 配置Configuration Manager站点和层次架构(1)
  4. 百度 UNIT 技术负责人揭秘:如何让你的对话系统更智能
  5. [转]ASP.NET Core基本原理(11)-管理应用程序状态
  6. sklearn自学指南(part10)--Lasso及多任务Lasso
  7. Office Word界面和页面字体模糊不清的解决方案
  8. 阿里云四大海外数据中心将开服
  9. Python 操作 protobuf 常见用法
  10. 翻译: 3.线性神经网络 概览 深入神经网络 pytorch
  11. SQL SERVER 2005 数据库置疑修复
  12. 关于数据库、数据仓库、数据湖、数据中台概念和区别
  13. 服务器系统在虚拟机安装win7系统安装教程,虚拟机安装教程图解 虚拟机安装win7步骤...
  14. 让国外买家秒回复的询盘模板示例
  15. java word转html乱码怎么办,poi导出word 乱码 poi word转html 乱码
  16. ElasticSearch-6.8.11实践笔记
  17. 电路及esd静电防护
  18. svg文件解析(python)
  19. java 查看window系统和linux系统信息
  20. 0x00007FF6DF5D6BD8 处有未经处理的异常(在 Ray tracer.exe 中): 0xC00000FD: Stack overflow

热门文章

  1. java封装json串示例_Java JSON示例
  2. iOS UICollectionView示例教程
  3. MacBook取消自启动程序
  4. Java开发工程师的发展前景如何?
  5. 两男子骑摩托车抢夺宴席礼金 警方:嫌疑人已被抓获
  6. 实践 | Sentinel 扩展性设计 1
  7. Android 常用adb shell 命令
  8. 燕十八MySQL优化学习笔记
  9. 在Mac OS X上利用Spotlight搜索代码
  10. 红孩子艰难求生 苏宁易购或伸援手