我正在我现有的项目中实现命名空间。我发现可以使用关键字' use‘将类导入到您的命名空间中。我的问题是,我是否也可以将一个名称空间中的所有类导入到另一个名称空间中。示例:
namespace foo
{
class bar
{
public static $a = 'foobar';
}
}
namespace
{
use \foo; //This doesn't work!
echo bar::$a;
}
PHP 7+的更新
PHP7中的一个新特性是分组声明。这并不像对给定名称空间中的所有类使用一条“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};
?>
发布于 2011-08-19 20:58:27
这在PHP中是不可能的。
你所能做的就是:
namespace Foo;
use Bar;
$obj = new Bar\SomeClassFromBar();
发布于 2019-08-08 19:44:14
您可以使用"as“来缩短长命名空间并为其添加别名
composer.json
{
"autoload": {
"psr-4": {
"Lorem\\Ipsum\\": "lorem/ipsum",
"Lorem\\Ipsum\\Dolor\\": "lorem/ipsum/dolor",
"Lorem\\Ipsum\\Dolor\\Sit\\": "lorem/ipsum/dolor/sit"
}
}
}
index.php
<?php
use Lorem\Ipsum\Dolor\Sit as FOO;
define ('BASE_PATH',dirname(__FILE__));
require BASE_PATH.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'autoload.php';
$bar = new FOO\Bar();
$baz = new FOO\Baz();
$qux = new FOO\Qux();
https://stackoverflow.com/questions/7121682
复制相似问题