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

php5.5有一个新的功能就是类级别的常量。

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

 代码:

<?php 
namespace vendorpackage; 
class Foo 

    // ... 
脚本学堂,http://www.jbxue.com。

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); 
        // ... 
    } 
}

例2:
<?php 

use vendorpackageFoo; 
use vendorpackageBar; 
class FooTest extends PHPUnit_Framework_TestCase 
{ www.jbuxe.com
    public function testBarCanBeProcessed() 
    { 
        $bar = $this->getMock(Bar::CLASS); 
        $foo = new Foo; 
        $foo->process($bar); 
        // ... 
    } 
}  

你可能感兴趣的:(php5)