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 相关文章推荐
用PHP伪造referer突破网盘禁止外连的代码
Jun 15 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
Dec 05 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
php使用str_replace实现输入框回车替换br的方法
Nov 24 PHP
PHP生成唯一订单号的方法汇总
Apr 16 PHP
PHP生成条形码大揭秘
Sep 24 PHP
thinkPHP模型初始化实例分析
Dec 03 PHP
YII Framework框架教程之缓存用法详解
Mar 14 PHP
基于PHP制作验证码
Oct 12 PHP
PHP+redis实现微博的推模型案例分析
Jul 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
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
PHP5 面向对象(学习记录)
2009/12/02 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
在视频前插入广告
2006/11/20 Javascript
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
vue-router传参用法详解
2019/01/19 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
python中关于日期时间处理的问答集锦
2013/03/08 Python
Python中字符编码简介、方法及使用建议
2015/01/08 Python
python 调用win32pai 操作cmd的方法
2017/05/28 Python
Python2.7+pytesser实现简单验证码的识别方法
2017/12/29 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
Python Django 页面上展示固定的页码数实现代码
2019/08/21 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
如何解决安装python3.6.1失败
2020/07/01 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
培训主管的岗位职责
2013/11/23 职场文书
团员的自我评价
2013/12/01 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
保健品市场营销方案
2014/03/31 职场文书
男方婚前保证书
2015/02/28 职场文书
PHP中多字节字符串操作实例详解
2021/08/23 PHP
Java数据结构之堆(优先队列)
2022/05/20 Java/Android
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python