php - 我收到命名空间错误

标签 php namespaces

正在学习命名空间的工作原理并拥有三个文件:- 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/

相关文章:

Python - 访问父成员

C# 从 "parent project"中的 "child project"访问一个类?

php - 在 Yii 中包含外部库

PHP 尝试使 JavaScript 友好的时间戳,失败,返回 1.34899651119E+12

php - 在 PHP 脚本完成时重定向到指定的 URL?

php - 在彩票系统内均匀分配奖金

php - 为什么 "exit"需要括号?

PHP 在删除自动加载器时 Composer 使工作失败

php - 将大量数组数据插入DB

xpath - 如何在节点测试中选择本地名称