不久前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 1dorpackageFoo; >{
public function testBarCanBeProcessed()
{
$bar = $this-> 電話> $foo->process($ bar);
// ...
}
}
複製程式碼 程式碼如下:
use vendorpackageFoouse 🎜>類 FooTest extends PHPUnit_Framework_TestCase { public function testBarCanBeProcessed()
{
$foo = new Foo;
$foo->process($bar);
// ...
}
}
http://www.bkjia.com/PHPjc/313492.html
www.bkjia.com
truehttp: //www.bkjia.com/PHPjc/313492.html
TechArticle不久前php剛發布了5.5的第一個穩定版,介紹了一個類別級別的常數,名字是`CLASS` 這個常數對所有的類別都有效,回傳類別的全名。 複製程式碼 程式碼...