php5.5中类级别的常量使用介绍
2013-10-08 11:19
393 查看
不久前php刚发布了5.5的第一个稳定版,介绍了一个类级别的常量,名字是 `CLASS` 这个常量对所有的类有效,返回类的全名。
代码如下:
<?php
namespace vendorpackage;
class Foo
{
// ...
}
var_dump(Foo::CLASS);
//上面脚本输出 string(18) "vendorpackageFoo".
为什么要使用它
我们为什么要使用一个这样的常量,当然不是像上面那个例子一样只是获得类的全名。我们使用__NAMESPACE__也可以达到同样的效果,而且php5.3就可以用了: http://www.unitymanual.com/forum36.html 代码如下:
<?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);
// ...
}
}
本文出自 “unity3d学习者” 博客,请务必保留此出处http://unity3d168.blog.51cto.com/4361353/1305677
代码如下:
<?php
namespace vendorpackage;
class Foo
{
// ...
}
var_dump(Foo::CLASS);
//上面脚本输出 string(18) "vendorpackageFoo".
为什么要使用它
我们为什么要使用一个这样的常量,当然不是像上面那个例子一样只是获得类的全名。我们使用__NAMESPACE__也可以达到同样的效果,而且php5.3就可以用了: http://www.unitymanual.com/forum36.html 代码如下:
<?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);
// ...
}
}
本文出自 “unity3d学习者” 博客,请务必保留此出处http://unity3d168.blog.51cto.com/4361353/1305677
相关文章推荐
- php5.5中类级别的常量使用介绍
- php5.5中类级别的常量使用介绍
- php魔法函数与魔法常量使用介绍
- php版本从5.3升级到5.5以后,老版的phpmyadmin没法使用的解决办法
- php常量的声明和使用
- PHP中文分词工具ICTCLAS的使用介绍
- PHP中冒号、endif、endwhile、endfor使用介绍
- MAC 使用homebrew 升级 php5.5 到 php5.6
- PHP中冒号、endif、endwhile、endfor使用介绍
- php mysql_db_query()函数使用介绍
- PHP中trait使用方法详细介绍
- 使用Zend OpCache 提高 PHP 5.5+ 性能
- js编码之encodeURIComponent使用介绍(asp,php)
- linux 启动项管理,运行级别介绍、chkconfig管理工具使用方法、linux系统启动项说明
- PHP中冒号、endif、endwhile、endfor使用介绍
- php的array_multisort()使用方法介绍
- php __set 和 __get方法使用介绍
- upupw : Apache Php5.5 的使用
- [原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存
- PHP endif、endwhile、endfor、冒号、switch、foreach使用介绍