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 相关文章推荐
基于mysql的论坛(2)
Oct 09 PHP
[原创]效率较高的php下读取文本文件的代码
Jul 02 PHP
php自动跳转中英文页面
Jul 29 PHP
php 中英文语言转换类代码
Aug 11 PHP
php中使用redis队列操作实例代码
Feb 07 PHP
php无限极分类实现的两种解决方法
Apr 28 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
重新认识php array_merge函数
Aug 31 PHP
php常量详细解析
Oct 27 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
Yii 框架入口脚本示例分析
May 19 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
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
Document 对象的常用方法
2009/07/31 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
vue实现选中效果
2020/10/07 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
班主任新年寄语
2014/04/04 职场文书
村庄环境整治方案
2014/05/15 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
教师党员个人总结
2015/02/10 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL