php命名空间
来源:互联网 发布:淘宝v2是什么意思 编辑:程序博客网 时间:2024/06/07 03:54
1、作用范围
以下类型的代码受命名空间的影响:类(包括抽象类和traits)、接口、函数和常量。
2、定义
(1)命名空间通过关键字namespace 来声明;
(2)必须在其它所有代码之前声明命名空间,所有非 PHP 代码包括空白符都不能出现在命名空间的声明(除了declare关键字。)
(3)同一个命名空间可以定义在多个文件中,即允许将同一个命名空间的内容分割存放在不同的文件中;
(4)子命名空间:与目录和文件的关系很象,PHP 命名空间也允许指定层次化的命名空间的名称。因此,命名空间的名字可以使用分层次的方式定义;
(5)不提倡在同一个文件中定义多个命名空间
3、使用
(1)非限定名称,或不包含前缀的类名称,例如 $a=new foo(); 或 foo::staticmethod();。如果当前命名空间是 currentnamespace,foo 将被解析为 currentnamespace\foo。如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,则 foo 会被解析为foo。 警告:如果命名空间中的函数或常量未定义,则该非限定的函数名称或常量名称会被解析为全局函数名称或常量名称。详情参见 使用命名空间:后备全局函数名称/常量名称。
(2)限定名称,或包含前缀的名称,例如 $a = new subnamespace\foo(); 或 subnamespace\foo::staticmethod();。如果当前的命名空间是 currentnamespace,则 foo 会被解析为 currentnamespace\subnamespace\foo。如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,foo 会被解析为subnamespace\foo。
(3)完全限定名称,或包含了全局前缀操作符的名称,例如, $a = new \currentnamespace\foo(); 或 \currentnamespace\foo::staticmethod();。在这种情况下,foo 总是被解析为代码中的文字名(literal name)currentnamespace\foo。
(4)在命名空间内部访问全局类、函数和常量必须使用完全限定名称(包括命名空间前缀的类名称)。注意因为在动态的类名称、函数名称或常量名称中,限定名称和完全限定名称没有区别,因此其前导的反斜杠是不必要的。
*******在命名空间内部访问全局类、函数和常量需要加斜杠\
4、别名是通过操作符 use 来实现的
- PHP手册-命名空间
- PHP手册-命名空间
- PHP的命名空间
- php命名空间 namespace
- PHP的命名空间
- php 命名空间
- PHP命名空间
- php 命名空间1
- php命名空间2
- PHP中的命名空间
- php 命名空间
- PHP 命名空间 入门
- PHP命名空间
- php命名空间
- PHP中的命名空间
- php namespace-命名空间
- PHP中的命名空间
- PHP的命名空间
- 凭照片能配钥匙开家门? 不止!还能开走你的车
- 喂狗机制 Software Dog
- 分区表(二)
- SpringMVC拦截器(资源和权限管理)
- 阿里云OSS(对象存储)的个人见解及使用方法
- php命名空间
- 【详细注释】Java->Socket 服务器与客户端的半双工通讯。拥有详细注释,完美诠释。
- FFmpeg源码剖析-通用:ffmpeg_parse_options()
- springMVC的概念及处理流程
- Ext submit时报错 Failed to execute 'appendChild' on 'Node': The new child element is null.
- outputdebugstring函数的封装
- Java:自定义类做key值,需注意什么
- 视频质量评价各种数值---十八个客观测试的方法对比
- _finddata_t结构体用法