gpt4 book ai didi

PHP 命名空间错误(名称已被使用)

转载 作者:行者123 更新时间:2023-12-04 16:53:22 25 4
gpt4 key购买 nike

我正在尝试在同一个文件上运行此代码:

namespace Foo1\Bar\SubBar;

class SubBarClass {

public function __construct() {
echo 'From Foo1';
}

}



namespace Foo2\Bar\SubBar;

class SubBarClass {

public function __construct() {
echo 'From Foo2';
}

}


use Foo1\Bar\SubBar;
$foo1 = new SubBarClass;


use Foo2\Bar\SubBar;
$foo2 = new SubBarClass;

想法是更改命名空间并回显相关值。
但它返回以下错误:

( ! ) fatal error :无法使用 Foo2\Bar\SubBar 作为 SubBar,因为该名称已在 C:\wamp\www\xxx\namespaces.php 第 30 行中使用

第 30 行:使用 Foo2\Bar\SubBar;

如何在同一个文件上交换命名空间?

谢谢!

最佳答案

use 关键字用于导入要在当前文件范围内访问的命名空间。它不充当命名空间“实例构造函数”。

您目前在 Foo2\Bar\SubBar 下命名空间。就像类目录一样,当您在这里时,您应该从根目录 ( \ ) 访问其他命名空间:

$foo2 = new SubBarClass;
$foo1 = new \Foo1\Bar\SubBar\SubBarClass;

没有必要使用 use 对于那些命名空间(尽管您可以,特别是当它们共享父命名空间时),它们已经在您使用它们的同一个文件中声明。

有关这方面的更多信息,请考虑阅读手册,其中描述了 using multiple namespaces in the same file .

关于PHP 命名空间错误(名称已被使用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32975062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com