一尘不染

PHP如何从另一个名称空间导入所有类

php

我在现有项目中实现名称空间。我发现您可以使用关键字“ use”将类导入您的名称空间。我的问题是,我也可以将所有类从1个命名空间导入另一个。例:

namespace foo
{

    class bar
    {

        public static $a = 'foobar';

    }

}

namespace
{
    use \foo;  //This doesn't work!
    echo bar::$a;
}

PHP 7+更新

PHP 7中的一项新功能是分组声明。这并不像在给定命名空间中的所有类上使用1个“ use语句”那样容易,但是却使它更容易…

示例代码:

<?php
// Pre PHP 7 code
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

// PHP 7+ code
use some\namespace\{ClassA, ClassB, ClassC as C};
?>

另请参阅:https :
//secure.php.net/manual/en/migration70.new-features.php#migration70.new-
features.group-use-
declarations


阅读 293

收藏
2020-05-29

共1个答案

一尘不染

这在PHP中是不可能的。

您所能做的就是:

namespace Foo;

use Bar;

$obj = new Bar\SomeClassFromBar();
2020-05-29