少し前に、PHP は最初の安定バージョン 5.5 をリリースしました。このバージョンでは、「CLASS」というクラスレベルの定数が導入されました。この定数はすべてのクラスで有効であり、クラスの完全な名前を返します。
コードをコピーします コードは次のとおりです:
namespacevendorpackage;
class Foo
{
コード文字列をコピー(18) "vendorpackageFoo".
それを使用する理由
なぜこのような定数を使用する必要があるのでしょうか? もちろん、上記の例のようにクラスの完全な名前を取得するためだけではありません。 __NAMESPACE__ を使用しても同じ効果を達成でき、php5.3 も使用できます:
次のようにコードをコピーします:
& & lt;? Php
namespace VendorPackage; Class Foo { // ... } var_dump (__nameSpace____. 'Foo');
ただし、名前を完全修飾する必要がある場合、名前空間はクラス名前空間のエイリアスを参照します...そうすると、興味深いことが起こります。
以下の例:
コードをコピーします
コードは次のとおりです:
class FooTest extends PHPUnit_Framework_TestCase
{
public function testBarCanBeProcessed()
{
$bar = $this-> getMock('vendorpackageBar ');
コードをコピーします
コードは次のとおりです:
usevendorpackageFoo;
class FooTest extends PHPUnit_Framework_TestCase
{
public function testBarCanBeProcessed() ️ getMock(Bar::CLASS ); $ foo = new foo
http://www.bkjia.com/PHPjc/313492.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/313492.html技術記事少し前に、PHP は最初の安定バージョン 5.5 をリリースしました。このバージョンでは、「CLASS」というクラスレベルの定数が導入されました。この定数はすべてのクラスに対して有効であり、クラスの完全名を返します。 コードをコピー コード...