[namespace]PHP命名空间的使用基础
--------------------------------------------------------------------------------------------------
一. PHP的命名空间主要解决三种冲突的问题:常量,函数,类
通俗理解:namespace就相当于是用来建一个目录,将namespace下面的代码放在该目录里面,与外面的区分开来。
/*
|---------------------------------
|namespace示例
|@黑眼诗人 <www.farwish.com>
|---------------------------------
*/
namespace myself; function var_dump()
{
echo 100;
} var_dump(); //调用自定义函数(相对路径方式) \myself\var_dump(); //调用自定义函数(绝对路径方式) \var_dump(100); //调用全局的(系统的函数)
注意:namespace 之前不能有任何代码,除了declare();多个文件可以使用同一个命名空间,但同一命名空间下定义的内容是不能冲突的。namespace支持子命名空间,如:namespace \myself\good,相当于多级目录的概念。
二. 同一文件中存在多个命名空间的情况
1.
/**
* 同一文件中若使用了多个命名空间,一般写法
*/
namespace nihao\shijie;
function demo()
{
//.......
}
namespace hello\world; function test()
{
//........
} \nihao\shijie\demo();
\hello\world\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 (即绝对路径的概念)
Link: http://www.cnblogs.com/farwish/p/3913663.html
@黑眼诗人 <www.farwish.com>
[namespace]PHP命名空间的使用基础的更多相关文章
- [namespace]PHP命名空间的动态访问 & 使用技巧
		----------------------------------------------------------------------------------------------- /* | ... 
- 使用XLinq.XElement读取带Namespace(命名空间)的XML
		简介 本文主要介绍通过XELemet去读取含有namespaces(xmlns)的XML,这也是偶然间发现这个问题的,一个群里的小伙伴突然问起这个,以此记录一下. 背景 一个XML文档可能包括来自多个 ... 
- Django 中 app_name (应用命名空间) 和 namespace (实例命名空间) 的区别
		转自:https://www.jianshu.com/p/404500a0408a 补充理解: 先把官网上对应用命名空间(app_name)和实例命名空间(namespace)的解释贴上: app_n ... 
- php namespace use 命名空间
		也可以参考PHP官网说明:http://php.net/manual/en/language.namespaces.importing.php namespace(以下简称ns).在定义了一个ns之后 ... 
- C++笔记008:C++对C的扩展——命名空间 namespace基础
		原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 第一, 命名空间的意义 命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突. 我认识两位叫“A”的朋友,一 ... 
- PHP 命名空间(namespace)
		PHP 命名空间(namespace) PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物. 不过在PHP当中还是有着相当重要的意义 ... 
- c++之命名空间namespace
		1命名空间解决全局变量的冲突 main.h文件 #pragma once // data命名空间的名称 namespace data { ;//外部全局变量冲突 } main.cpp #include ... 
- c++ namespace命名空间详解
		What is a namespace? A namespace defines an area of code in which all identifiers are guaranteed to ... 
- 02C++namespace命名空间
		一.C++命名空间基本常识 所谓namespace,是指标识符的各种可见范围.C++标准程序库中的所有标识符都被定义于一个名为std的namespace中. 1.<iostream>和&l ... 
随机推荐
- MySQL 8.0的关系数据库新特性详解
			前言 MySQL 8.0 当前的最新版本是 8.0.4 rc,估计正式版本出来也快了.本文介绍几个 8.0 在关系数据库方面的主要新特性. 你可能已经知道 MySQL 从版本 5.7 开始提供了 No ... 
- Windows Server 2016 路由和远程访问
			本次实验是将Windows Server 2016 配置成一个路由器,为此网络上的客户端和服务器启用多重协议LAN到LAN,LAN到WAN,虚拟专用网络和网络地址转换路由服务.使用路由和远程访问需配置 ... 
- SP694 DISUBSTR - Distinct Substrings
			/* 统计每个节点的max和min, 然后求和即可 min = max[fa] + 1 */ #include<cstdio> #include<algorithm> #inc ... 
- TableStore:创建SyncClient+getRow读取一行数据
			1.通过控制台或者客户端,在TableStore中新建了实例owlforest,在实例详情中获取到实例访问地址endPoint 2.新建表user,确定主键为userid(Interger)类型,因为 ... 
- mac OS 安装maven遇到问题e45: 'readonly' option is set
			1.下载 Maven, 并解压到某个目录.例如/Users/yintingting/apache-maven-3.3.9 2.打开Terminal,输入以下命令,设置Maven classpath v ... 
- CentOS网络设置  couldn't resolve host 'mirrorlist.centos.org问题解决
			在VBox上安装完CentOS6.5之后,首次使用时yum命令安装软件时,经常遇到"couldn't resolve host 'mirrorlist.centos.org"这个问 ... 
- Python下的opencv小问题大智慧
			1.今晚日了狗了,图像显示不按照预期出现,然后突然就好了...... 2.根据第一个问题举一个例子,另一个我没保存... 是不是分不清楚???? plt.imshow(wjy2, cmap='gr ... 
- android开发 静态碎片布局实现
			实现思维: 1.需要写2个或者多个子布局 2.写一个Java的class去实现将子布局与父类布局铺满.(一个子布局对应一个class) 3.在父类布局中导入fragment布局,并且添加android ... 
- 《算法》第四章部分程序 part 4
			▶ 书中第四章部分程序,加上自己补充的代码,图的深度优先遍历 ● 无向图的深度优先遍历,有向 / 无向图代码仅若干方法名不同,包括递归和非递归版本,去掉了顶点有效性的检查 package packag ... 
- Android将Log写入文件
			为什么要将Log写入文件 运行应用程序的时候,大多数是不会连接着IDE的: 而当应用程序崩溃时,我们需要收集复现步骤,在设备上复现,并进行Debug: 而由于Android手机的多样性,有些问题是某个 ... 
