首页 >头条 >带你玩转PHP命名空间

带你玩转PHP命名空间

无忌哥哥
无忌哥哥原创
2018-06-28 15:47:192351浏览

* 命名空间

 * 先理解一个重要概念:代码复用

 * 我们学习面向对象编程的终极目标是什么? "代码复用"

 * 一、彻底理解代码复用机制?

 * **到目前为止,我们已经学到的代码复用的实现手段

 * 1. 函数: 代码复用最简单的方式;

 * 2. 类与对象:将函数与它可能用到的数据封装到一起;

 * 3. trait与接口:一种特殊的类,本质是仍是函数与数据的封装;

 * 4. 常量:因为常量具有一旦定义不可修改性,可以做到一次声明,随处调用,而值不会发生变化

 * 二、彻底理解什么是全局?

 * 1.全局其它就是指当前脚本,是不能跨脚本的,更不是指整个项目

 * 2.全局与局部是一对双胞胎兄弟,他们有一个共同的亲爹:作用域,都由它管着

 * 三、彻底理解php脚本中有哪些成员?

 * 1.变量:包括系统预置变量与用户自定义变量;

 * 2.常量:包括系统预置常量,用户自定义常量;

 * 3.函数:包括匿名函数/函数表达式/自执行函数;

 * 4.类与对象:包括抽象类,接口,trait;

 * 三、彻底理解什么是作用域?

******作用域主要是针对变量

 *****PHP中的变量有三种作用域: 函数作用域,全局作用域,超全局作用哉;

 * 1. 全局作用域: 在函数外部声明,在函数内部不能直接使用

 *    注: 函数中使用全局变量必须用global声明,或者使用超全局数组:$GLOBALS

 * 2. 函数作用域:也就是局部作用域,包括函数的参数以及函数内声明的变量,离开函数则自动清除;

 * 3. 超全局作用域: 除了在全局有效外,在函数内也可以不用声明直接使用

 * 四、为什么要使用命名空间?

 * 1.类,函数,常量都是全局有效,包括在函数中也可以直接使用.

 * 2.因此,在全局中不允许有重名的类,函数和常量。

 * 3.如果想从外部导入一个函数库或类库,他们的函数名,类名极有可能与当前脚本冲突

 * 4.所以,必须要有一套对于工作在全局范围内的脚本成员,进行标识符命名冲突处理的机制。

 * 5.命名空间就是这样一套解决方案,他不仅可以让用户为全局成员起一个较短的名称,又解决了

 * 第三方资源的引入带来的重名问题。

 * 6.在没有使用任何命名空间的情部下,所有类,常量,函数全部声明在全局空间,用\表,现在我们在

 * 他们之前加上反斜线\之外,你会发现,执行结果也是正确的.

 * 声明类,常量,函数的时候,前面不需要添加\,调用的时候才需要添加\

 * 命名空间非常重要,如果不能彻底掌握,将会成为你以后学习的最大障碍!!! 

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn