Php 类名和导入的类的重复符号声明
这是我的班级:Php 类名和导入的类的重复符号声明,php,oop,Php,Oop,这是我的班级: namespace Controller\Reference; use \Classes\Admin; class Admin extends Controller { public $data; } 如果我想使用\Classes\Admin我得到这个错误: 重复符号声明 但是如果我使用作为像一样使用\Classes\Admin作为Admin1我没有得到任何错误 我不想将用作并将我的类名更改为Admin1 如何使用Admin类名和use\Classes\Admin类
namespace Controller\Reference;
use \Classes\Admin;
class Admin extends Controller
{
public $data;
}
如果我想使用\Classes\Admin代码>我得到这个错误:
重复符号声明
但是如果我使用作为
像一样使用\Classes\Admin作为Admin1代码>我没有得到任何错误
我不想将用作
并将我的类名更改为Admin1
如何使用Admin
类名和use\Classes\Admin没有别名的代码>类名?不能有两个同名符号。这会使代码模棱两可,无法解析
您可以将其中一个类(使用作为
关键字)别名,或者为外部类使用完全限定名
class Admin extends Controller
{
public $data;
public function foo() {
$admin = new \Classes\Admin();
}
}
在任何情况下,都没有实际理由不使用别名,但是如果您的代码标准、样式指南或其他任何东西阻止您使用类别名。。。简单地说,不要这样做,不要导入。你不能这样做,它将是两个同名的不同类。如果您不想将用作
(不确定为什么),请不要将置于顶部,只需使用带有命名空间的完整类名即可访问第二个管理类。例如,new\Classes\Admin()
为什么给它一个别名(使用作为
)是一个问题?这纯粹是为了美学,还是有“真正”的原因?毕竟,这里的AS
关键字就是为了这个目的。您可以随时调用它,这比具体的Admin1
更有意义。当问题的唯一描述是“我不想要……”时,我总是很谨慎。