php5.5中类级别的常量使用介绍

前端之家收集整理的这篇文章主要介绍了php5.5中类级别的常量使用介绍前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_404_0@不久前PHP刚发布了5.5的第一个稳定版,介绍了一个类级别的常量,名字是 CLASS 这个常量对所有的类有效,返回类的全名。


@H_404_0@<div class="codetitle"><a style="CURSOR: pointer" data="71943" class="copybut" id="copybut71943" onclick="doCopy('code71943')"> 代码如下:@H_403_4@<div class="codebody" id="code71943">
<?PHP
namespace vendorpackage;
class Foo
{
// ...
}
var_dump(Foo::CLASS);
//上面脚本输出 string(18) "vendorpackageFoo".
@H_4034@


@H
4040@为什么要使用它


@H
404_0@我们为什么要使用一个这样的常量,当然不是像上面那个例子一样只是获得类的全名。我们使用NAMESPACE也可以达到同样的效果,而且PHP5.3就可以用了:


@H_404_0@<div class="codetitle"><a style="CURSOR: pointer" data="63657" class="copybut" id="copybut63657" onclick="doCopy('code63657')"> 代码如下:@H_403_4@<div class="codebody" id="code63657">
<?PHP
namespace vendorpackage;
class Foo
{
// ...
}
vardump(NAMESPACE . 'Foo');
@H
4034@


@H
404_0@然而,当你需要完全限定名称,命名空间引用了类命名空间别名…然后它变得有趣。


@H_4040@在下面的例子:


@H
404_0@<div class="codetitle"><a style="CURSOR: pointer" data="41631" class="copybut" id="copybut41631" onclick="doCopy('code41631')"> 代码如下:@H_403_4@<div class="codebody" id="code41631">
<?PHP
use vendorpackageFoo;
class FooTest extends PHPUnit_FrameworkTestCase
{
public function testBarCanBeProcessed()
{
$bar = $this->getMock('vendorpackageBar');
$foo = new Foo;
$foo->process($bar);
// ...
}
}
@H
4034@


@H
404_0@<div class="codetitle"><a style="CURSOR: pointer" data="81151" class="copybut" id="copybut81151" onclick="doCopy('code81151')"> 代码如下:@H_403_4@<div class="codebody" id="code81151">
<?PHP
use vendorpackageFoo;
use vendorpackageBar;
class FooTest extends PHPUnit_FrameworkTestCase
{
public function testBarCanBeProcessed()
{
$bar = $this->getMock(Bar::CLASS);
$foo = new Foo;
$foo->process($bar);
// ...
}
}
@H
403_4@

原文链接:https://www.f2er.com/php/25609.html

猜你在找的PHP相关文章