[thinkPHP5项目实战_02]命名空间的定义
2017-08-10 10:06
501 查看
1.命名空间解决的问题
1)用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突;2)为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
作用:对类、函数和和const定义的常量起作用
2.命名空间的用法
<?php namespace MyProject ; const CONNECT_OK = 1 ; class Connection { /* ... */ } function connect () { /* ... */ } ?>
举例说明
<?php namespace pro1; function func(){ echo "func1"; } const x = "name1"; namespace pro2; function func(){ echo "func2"; } const x = "name2";
3.命名空间的使用
<?php namespace pro1; function func(){ echo "func1"; } const x = "name1"; \pro1\func(); echo \pro1\x; namespace pro2; function func(){ echo "func2"; } const x = "name2"; \pro2\func(); echo \pro2\x;
注意:在实际的编程实践中,非常不提倡在同一个文件中定义多个命名空间,一般使用大括号形式的语法
<?php namespace MyProject { const CONNECT_OK = 1 ; class Connection { /* ... */ } function connect () { /* ... */ } }
将全局的非命名空间中的代码与命名空间中的代码组合在一起,只能使用大括号形式的语法。全局代码必须用一个不带名称的 namespace 语句加上大括号括起来
<?php namespace MyProject { const CONNECT_OK = 1 ; class Connection { /* ... */ } function connect () { /* ... */ } }
namespace { // global code
session_start ();
$a = MyProject \ connect ();
echo MyProject \ Connection :: start ();
}
相关文章推荐
- [thinkPHP5项目实战_03]子命名空间及命名空间的访问方式
- [thinkPHP5项目实战_04]命名空间的引入
- C++ 参数传递,定义与声明,命名空间等基本知识
- VS2010项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称
- .net 项目添加Dll成功,却无法引用其中的命名空间的现象
- SPORE,一个很好的实现JS命名空间的管理,模块的定义,与自动加载依赖模块的脚本文件
- thinkphp命名空间用法实例详解
- 02 (maven+SSH)网上商城项目实战之需求分析
- 【课程分享】基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构、自己定义工作流)
- PetShop 4.0 设计研究——petShop 4.0 的命名空间 以及各个项目模块的说明
- 关于php命名空间的实战测试
- Thinkphp 5.0到THINKPHP 5.1 类库调整 命名空间有调整
- 使用util命名空间定义集合
- JAVAEE——SSH项目实战02:客户列表和BaseDao封装
- JavaWeb项目前端规范(采用命名空间使js深度解耦合)
- 如何定义使用PHP 命名空间?
- 如何理解System命名空间定义泛型委托 :ACtion.Func和predicate
- 【SSH网上商城项目实战02】基本增删查改、Service和Action的抽取以及使用注解替换xml
- AjaxPro命名空间未定义
- tensorflow21《TensorFlow实战Google深度学习框架》笔记-09-02 TensorBoard命名空间 code