昨天學習了一下php5.5發現有一個新的功能就是類層級的常量,下面我來給大家簡單分享一下我的學習筆記。
不久前php剛發布了5.5的第一個穩定版,介紹了一個類層級的常量,名字是 `CLASS` 這個常量對所有的類有效,返回類的全名。
| 代碼如下 |
複製代碼 |
namespace vendorpackage; class Foo { // ... } var_dump(Foo::CLASS); //上面指令碼輸出 string(18) "vendorpackageFoo". |
為什麼要使用它
我們為什麼要使用一個這樣的常量,當然不是像上面那個例子一樣只是獲得類的全名。我們使用__NAMESPACE__也可以達到同樣的效果,而且php5.3就可以用了:
| 代碼如下 |
複製代碼 |
namespace vendorpackage; class Foo { // ... } var_dump(__NAMESPACE__ . 'Foo'); |
然而,當你需要完全限定名稱,命名空間引用了類命名空間別名…然後它變得有趣。
在下面的例子:
| 代碼如下 |
複製代碼 |
use vendorpackageFoo; class FooTest extends PHPUnit_Framework_TestCase { public function testBarCanBeProcessed() { $bar = $this->getMock('vendorpackageBar'); $foo = new Foo; $foo->process($bar); // ... } }
|
| 代碼如下 |
複製代碼 |
use vendorpackageFoo; use vendorpackageBar; class FooTest extends PHPUnit_Framework_TestCase { public function testBarCanBeProcessed() { $bar = $this->getMock(Bar::CLASS); $foo = new Foo; $foo->process($bar); // ... } } |
http://www.bkjia.com/PHPjc/628622.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/628622.htmlTechArticle昨天學習了一下php5.5發現有一個新的功能就是類層級的常量,下面我來給大家簡單分享一下我的學習筆記。 不久前php剛發布了5.5的第一個穩...