PHP导入类使用关键字

时间:2014-11-25 11:04:52

标签: php

我目前不使用PHP use字,但现在必须......:)

index.php 内容:

require_once 'Classes/MainClass.php';
$obj = new Main();
echo $obj->test();

类/ MainClass.php

<?php
use AdminFrontEnd;

class Main {
    function test(){
        return new AdminFrontEnd("debug");
    }
} 

AdminFrontEndClass.php 内容:

<?php
class AdminFrontEnd {
    function __constuctor($test){
        echo $test;
    }
} 

最后,出现以下错误:

  

致命错误:在Classes / MainClass.php中找不到类'AdminFrontEnd'   在第10行

1 个答案:

答案 0 :(得分:1)

根据@deceze的评论,您需要显式导入其他类,使用require语句或自动加载。

use语句用于别名化类,正如@deceze所说,可以用来从不同的命名空间中提取类,或者避免类冲突。

拥有一个名为“Main”的课程可能并不理想。它是一个单身人士,还是会有多个'Main'?
也许这个班级会更好地命名为“App”。

从长远来看,您将需要了解如何使用命名空间,因此如果您使用其他人的类和插件,则不会产生冲突。我已经添加了一个解决方案,还有一些更广泛的信息。

让你摆脱困境:

类别/ MainClass.php

<?php

require_once 'Classes/AdminFrontEnd.php';

class Main {   /*   etc...  */ 


我会建议进一步阅读:

创建自动加载的示例:

http://php.net/manual/en/language.oop5.autoload.php

您可能也想了解名称空间:

http://php.net/manual/en/language.namespaces.php

我还强烈建议您阅读互操作性编码标准。首先要介绍它,但它将帮助您理解使用命名空间和自动加载器背后的逻辑。

http://www.php-fig.org/