PHP命名空间

概述

什么是命名空间呢? 这个概念我第一次知道是在C++中.

首先, 为什么要用到命名空间呢? 当然是为了解决重名的问题了, 其实命名空间和Java中的包有着异曲同工之妙, Java中 a包下的Test类, 和b包下的Test类是两个类, 在使用的时候import不同包下即可, PHP中 a命名空间下的Test类,与b命名空间下的Test类也是两个类.

好了, 看PHP命名空间的简单应用:

是不是很简单?

但是我有如下问题?

  1. 不指定命名空间时, 如何?
  2. 不将类use进来,直接创建,如何?
  3. 若要引入不同命名空间的同名类, 如何?

问题解决

1. 当不指定命名空间时, 为全局空间,公共空间

2. 不讲类use进来, 直接创建时, 将在当前命名空间下寻找

3. 引入不同命名空间的同名类时, 可以使用别名来区分同名类

总结

PHP中命名空间与文件所处路径是没有关系的, 使用时, 最方便的就是直接使用根路径进行引入, 如果使用相对路径, 可能会混淆

其实, 就将命名空间当作路径来使用就可以了, 当使用类时, '\xx' 为绝对路径, 'xx'为相对路径(use时不用), 其实想想并不是很绕

本文分享自微信公众号 - 烟草的香味(hujing-bc)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java多线程学习 (一)

    进程是操作系统运行程序的基本单位,是一次程序的执行。简单来说一个进程就是一个运行中的程序。

    小森啦啦啦
  • Java多线程学习(三)——synchronized(上)

    在前两节的《Java多线程学习(一)——多线程基础》和《Java多线程学习(二)——Thread类的方法介绍》中我们接触了线程安全和非线程安全的概念,这节就来学...

    小森啦啦啦
  • Spring AOP 中 JDK 和 CGLib 动态代理哪个更快?

    昨天一位小伙伴面试的时候被问到:Spring AOP中JDK和CGLib动态代理哪个效率更高?在知识星球整理了一下,今天特分享出来,供大家参考!

    好好学java
  • 大数据如何学习,告诉你正确的学习姿势

    现在是大数据的时代,也称作云数据,我们在网上的各种数据,最后把这些整理集合在一起,形成一个庞大的数据集合体,我们生活中大数据已经实时的应用了。那么,大数据如何学...

    一起学习大数据
  • 【ES6基础】Array数组的新方法(上)

    在日常工作中我们经常会与数组打交道,因此需要熟练掌握数组操作的相关方法,ES6中关于数组的操作,又给我们带来了哪些惊喜呢,Array数组操作又添加了哪些新方法?

    前端达人
  • LeetCode707:设计链表 Design Linked List

    设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引...

    爱写bug
  • Java 学习笔记(11)——lambda 表达式

    在写Java代码的时候,如果某个地方需要一个接口的实现类,一般的做法是新定义一个实现类,并重写接口中的方法,在需要使用的时候new一个实现类对象使用,为了一个简...

    Masimaro
  • 设计模式(一)——单例模式

    在实际生产的项目中我们一般很少自己使用单例模式,但是在有过间接的使用过他,例如spring的bean单例。 定义:确保某一个类只有一个实例,而且自行实例化并向整...

    小森啦啦啦
  • CopyOnWriteArrayList

    在很多应用场景中,读操作可能会远远大于写操作。由于读操作根本不会修改原有的数据,因此如果每次读取都进行加锁操作,其实是一种资源浪费。我们应该允许多个线程同时访问...

    happyJared
  • 使用Optional摆脱NPE的折磨

    architectural-architectural-design-architecture

    阿杜

扫码关注云+社区

领取腾讯云代金券