php5.5中类级别的常量使用介绍


Posted in PHP onOctober 02, 2013

不久前php刚发布了5.5的第一个稳定版,介绍了一个类级别的常量,名字是 `CLASS` 这个常量对所有的类有效,返回类的全名。

<?php 
namespace vendorpackage; 
class Foo 
{ 
    // ... 
} 
var_dump(Foo::CLASS); 
//上面脚本输出 string(18) "vendorpackageFoo".

为什么要使用它

我们为什么要使用一个这样的常量,当然不是像上面那个例子一样只是获得类的全名。我们使用__NAMESPACE__也可以达到同样的效果,而且php5.3就可以用了:

<?php 
namespace vendorpackage; 
class Foo 
{ 
    // ... 
} 
var_dump(__NAMESPACE__ . 'Foo');

然而,当你需要完全限定名称,命名空间引用了类命名空间别名…然后它变得有趣。

在下面的例子:

<?php 
use vendorpackageFoo; 
class FooTest extends PHPUnit_Framework_TestCase 
{ 
    public function testBarCanBeProcessed() 
    { 
        $bar = $this->getMock('vendorpackageBar'); 
        $foo = new Foo; 
        $foo->process($bar); 
        // ... 
    } 
}
<?php 
use vendorpackageFoo; 
use vendorpackageBar; 
class FooTest extends PHPUnit_Framework_TestCase 
{ 
    public function testBarCanBeProcessed() 
    { 
        $bar = $this->getMock(Bar::CLASS); 
        $foo = new Foo; 
        $foo->process($bar); 
        // ... 
    } 
} 
PHP 相关文章推荐
linux下 C语言对 php 扩展
Dec 14 PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 PHP
整理的9个实用的PHP库简介和下载
Nov 09 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
php的一个简单加密解密代码
Jan 14 PHP
php判断用户是否关注微信公众号
Jul 22 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
php实现URL加密解密的方法
Nov 17 PHP
thinkphp修改配置进入默认首页的方法
Feb 07 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
php解析非标准json、非规范json的方式实例
Dec 10 PHP
php mysql_real_escape_string函数用法与实例教程
Sep 30 #PHP
PHP文件上传主要代码讲解
Sep 30 #PHP
php中利用str_pad函数生成数字递增形式的产品编号
Sep 30 #PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
Sep 30 #PHP
PHP设置一边执行一边输出结果的代码
Sep 30 #PHP
PHP file_get_contents设置超时处理方法
Sep 30 #PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 #PHP
You might like
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
PHP实现采集程序原理和简单示例代码
2007/03/18 PHP
深入理解require与require_once与include以及include_once的区别
2013/06/05 PHP
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
Html中 IFrame的用法及注意点
2016/12/22 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
python+opencv边缘提取与各函数参数解析
2020/03/09 Python
荷兰之家英文站:Holland at Home
2016/10/26 全球购物
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
了解AppleTalk协议吗
2014/04/01 面试题
男方父母婚礼答谢词
2014/01/25 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
教师节倡议书2015
2015/04/27 职场文书
毕业生学校组织意见
2015/06/04 职场文书
军训后的感想
2015/08/07 职场文书
2019消防宣传标语!
2019/07/10 职场文书
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
django中websocket的具体使用
2022/01/22 Python