在PHP中,如果(\ false)(是的,使用反斜杠)是什么意思?

时间:2017-05-24 08:08:34

标签: php namespaces

今天早上,我已收到有关新Twig_Extensions版本可用的通知!耶!

在将其整合到twigfiddle之前,我希望看到changes。这主要是使用class_alias函数添加对名称空间的支持,然后添加仅包含旧版本的PSR-4对应类。

但每个新的(命名空间)类都是这样实现的:

<?php

namespace Twig\Extensions;

require __DIR__.'/../lib/Twig/Extensions/Extension/Text.php';

if (\false) {
    class TextExtension extends \Twig_Extensions_Extension_Text
    {
    }
}

这种符号是什么意思?

4 个答案:

答案 0 :(得分:5)

这意味着它使用了全局命名空间中定义的false ..

经过一番研究后发现,这个答案的其余部分都是无意义的......我发誓,你可以在一个时间点用PHP做到这一点。

我认为这是绕过

的情况
<?php
namespace whywouldyoudothis;

false = true;
?>

我从来没有见过任何代码,但这是我想到的。

答案 1 :(得分:3)

来自php manual

  

使用\前缀名称将指定需要名称   即使在名称空间的上下文中也是全局空间。

答案 2 :(得分:0)

这是一个毫无意义的代码,只是一个Unreachable code,因为\ false始终为false!

答案 3 :(得分:0)

if (\false) {
    class TextExtension extends \Twig_Extensions_Extension_Text
    {
    }
}

代码嗅探器和IDE仍可以访问该代码。但是,我认为该处应该有弃用说明。这样就可以通知开发人员有关不赞成使用的类的信息。

这里是Twig主存储库中的一个示例。 https://github.com/twigphp/Twig/blob/v2.10.0/lib/Twig/Token.php