我得到命名空间错误

时间:2017-02-04 09:07:47

标签: 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();

我尝试运行后得到的错误是

  

无法将app \ icl \ iClass用作iClass,因为该名称已被使用   在第10行的C:\ xampp \ htdocs \ namespace \ index.php

有人可以解释为什么会出错。

1 个答案:

答案 0 :(得分:1)

当然,您尝试在同一本地名称iClass下导入两个类,这显然是不可能的。使用完全限定的类名(命名空间名称)或以不同的名称导入它们。

使用完全限定的类名意味着:

\app\ic\iClass::callMe();
\app\icl\iClass::callMe();

或者你&#34;使用&#34;不同地方名称下的类:

use app\ic\iClass;
use app\icl\iClass as iClassed; 

iClass::callMeFromClass();
iClassed::callMe();`

我建议你开始阅读你使用的东西的文档。它质量很好,并附有很好的例子:http://php.net/manual/en/language.namespaces.php