[namespace]PHP命名空间的使用基础

--------------------------------------------------------------------------------------------------

一. PHP的命名空间主要解决三种冲突的问题:常量,函数,类

通俗理解:namespace就相当于是用来建一个目录,将namespace下面的代码放在该目录里面,与外面的区分开来。

/*
|---------------------------------
|namespace示例
|@黑眼诗人 <www.chenwei.ws>
|---------------------------------
*/
namespace myself;

function var_dump()
{
    echo 100;
}

var_dump(100);          //调用自定义函数(相对路径方式)

\myself\var_dump(100);  //调用自定义函数(绝对路径方式) 

\var_dump(100);          //调用全局的(系统的函数)

注意:namespace 之前不能有任何代码,除了declare();多个文件可以使用同一个命名空间,但同一命名空间下定义的内容是不能冲突的。namespace支持子命名空间,如:namespace \myself\good,相当于多级目录的概念。

二. 同一文件中存在多个命名空间的情况

1.

/** * chenwei.ws */namespace nihao\shijie;

namespace hello\world;

function test()
{
    //........
}

//连续命名,后面的代码将使用第二个命名空间,所有连续命名没有意义。

2.

/**
 * 同一文件中若使用了多个命名空间,建议大括号扩起来
 */
namespace nihao\shijie{
  function test_one()  {
    //......
  };
}

namespace hello\world{
  function test_two()  {
    //........
  }
}

\nihao\shijie\test_one();

\hello\world\test_two();

同一文件内使用多个命名空间,主要用于项目将多个PHP脚本合并在同一文件中,实际中不提倡使用!

三. 名称解析规则(几个概念)

  1.非限定名称:名称中不包含命名空间分割符,如:myself

  2.限定名称:名称中含有命名空间分割符,如:nihao\shijie

  3.完全限定名称:名称中包含分割符,并以命名空间分割符开始,如:\nihao\shijie  (即绝对路径的概念)

------------------------------------------------------------------------------------------------

[namespace]PHP命名空间的使用基础,布布扣,bubuko.com

时间: 2024-08-10 02:03:07

[namespace]PHP命名空间的使用基础的相关文章

[namespace]PHP命名空间的动态访问 &amp; 使用技巧

----------------------------------------------------------------------------------------------- /* |---------------------------------------- |一.动态访问命名空间的元素 |@黑眼诗人 <www.chenwei.ws> |---------------------------------------- */ namespace me\poet; funct

使用XLinq.XElement读取带Namespace(命名空间)的XML

简介 本文主要介绍通过XELemet去读取含有namespaces(xmlns)的XML,这也是偶然间发现这个问题的,一个群里的小伙伴突然问起这个,以此记录一下. 背景 一个XML文档可能包括来自多个XML词汇表的元素或属性,如果每一个词汇表指派一个命名空间,那么相同名字的元素或属性之间的名称冲突就可以解决. 举一个简单的例子来说,在一个订单的XML文档中需要引用到客户和所购买的产品,customer元素和product元素可能都有一个叫做id的子元素.这时候要引用id元素会造成名称冲突,但是如

php中的namespace 命名空间

名字解释: namespace(命名空间),命名空间是从php5.3开始支持的功能.作用主要有两个:1.可以避免类名取得过长.2.当在多个框架配合使用时,同名的类之间不会冲突. 命名空间,看名字就知道,目的就是为了命名的,不然咋不叫QQ空间 盗梦空间 七度空间.额 好像有奇怪的掺进来了. 下面是示例代码: 1 //在test1.php 中有一个类 叫做Person,它放在一个叫shop的namespace里. 2 <?php 3 namespace shop;//这个声明要放在php文件的最上面

c++之命名空间namespace

1命名空间解决全局变量的冲突 1 main.h文件 2 #pragma once 3 // data命名空间的名称 4 namespace data 5 { 6 int num = 20;//外部全局变量冲突 7 } 8 9 10 main.cpp 11 #include"main.h" 12 #include<iostream> 13 using namespace std; 14 15 int num = 10; 16 17 void main() 18 { 19 co

02C++namespace命名空间

一.C++命名空间基本常识 所谓namespace,是指标识符的各种可见范围.C++标准程序库中的所有标识符都被定义于一个名为std的namespace中. 1.<iostream>和<iostream.h>格式不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的.后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开

k8s基础整理-标签/注解/命名空间

参考整理于<kubernetes in Action> 本章内容涵盖 创建. 启动和停止 pod 使用标签组织 pod 和其他资源 使用特定标签对所有 pod 执行操作 使用命名空间将多个 pod 分到不重叠的组中 调度 pod 到指定类型的工作节点 标签 标签配置 查看标签 kubectl get pods 命令默认不会列出任何标签,但我们可以使用 --show-labels 选项来查看 : kubectl get po --show-labels 如果你只对某些标签感兴趣,可以使用 L 选

docker一:基础原理

docker的体系结构 docker使用c/s架构,docker daemon(守护进程)作为server端接受client的请求,并处理(创建.运行.分发容器)他们可以运行在一个机器上,也通过sockerts或者RESTful API通信. docker client host docker pull docker daemon docker run container1 docker container2 docker有三个内部组件 docker images docker registri

Java学习的一些基础笔记

classpath.;%java_home%\lib;%java_home%\lib\tools.jar;D:\Java\;java_homeD:\Program Files\Java\jdk1.8.0_51pathC:\Users\BaseKing-Sunie\AppData\Local\Code\bin;%java_home%\bin;%java_home%\jre\bin;D:\adt-bundle-windows-x86_64_20131020\sdk\tools;D:\adt-bund

C++之基础知识20170830

/******************************************************************************************************************/ 一.C++类的引入 与C相比, 1.编译使用g++代替 gcc,执行在linux中还是一样的 2.c++里面也有struct并对其进行了扩展,struct中的函数可以直接使用其成员,并可在struct中直接实现, 例: struct person { char *n