昨天學習了一下php5.5發現有一個新的功能就是類級別的常量,下面我來給大家簡單分享一下我的學習筆記。
不久前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);
- // ...
- }
- }
新聞熱點
疑難解答