|
不久前php剛發(fā)布了5.5的第一個(gè)穩(wěn)定版,介紹了一個(gè)類級(jí)別的常量,名字是 `CLASS` 這個(gè)常量對(duì)所有的類有效,返回類的全名。
復(fù)制代碼 代碼如下:
<?php
namespace vendorpackage;
class Foo
{
// ...
}
var_dump(Foo::CLASS);
//上面腳本輸出 string(18) "vendorpackageFoo".
為什么要使用它
我們?yōu)槭裁匆褂靡粋€(gè)這樣的常量,當(dāng)然不是像上面那個(gè)例子一樣只是獲得類的全名。我們使用__NAMESPACE__也可以達(dá)到同樣的效果,而且php5.3就可以用了:
復(fù)制代碼 代碼如下:
<?php
namespace vendorpackage;
class Foo
{
// ...
}
var_dump(__NAMESPACE__ . 'Foo');
然而,當(dāng)你需要完全限定名稱,命名空間引用了類命名空間別名…然后它變得有趣。
在下面的例子:
復(fù)制代碼 代碼如下:
<?php
use vendorpackageFoo;
class FooTest extends phpUnit_Framework_TestCase
{
public function testBarCanBeProcessed()
{
$bar = $this->getMock('vendorpackageBar');
$foo = new Foo;
$foo->process($bar);
// ...
}
}
復(fù)制代碼 代碼如下:
<?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技術(shù):php5.5中類級(jí)別的常量使用介紹,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。