正在学习命名空间的工作原理并拥有三个文件:- index、iClass 和 iClassed
iClass.php
<?php
namespace app\ic;
class iClass {
public static function callMeFromClass() {
echo 'OK - you have called me!';
exit;
}
}
iClassed.php
<?php
namespace app\icl;
class iClass {
public static function callMe() {
echo 'OK - iclassed - you have called me!';
exit;
}
}
和 index.php
<?php
namespace inex;
require_once 'iClass.php';
require_once 'iClassed.php';
use app\ic\iClass;
iClass::callMeFromClass();
use app\icl\iClass;
iClass::callMe();
我尝试运行后得到的错误是
Cannot use app\icl\iClass as iClass because the name is already in use in C:\xampp\htdocs\namespace\index.php on line 10
有人可以解释为什么错误。
最佳答案
当然,您尝试以相同的本地名称 iClass 导入两个类,这显然是不可能的。使用完全限定的类名(命名空间名称)或以不同的名称导入它们。
使用完全限定的类名意味着:
\app\ic\iClass::callMe();
\app\icl\iClass::callMe();
或者您“使用”不同本地名称下的类:
use app\ic\iClass;
use app\icl\iClass as iClassed;
iClass::callMeFromClass();
iClassed::callMe();`
我建议你开始阅读你使用的东西的文档。它质量上乘,并附有很好的例子:http://php.net/manual/en/language.namespaces.php
关于php - 我收到命名空间错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42038507/