PHP导入类与使用关键字
问题描述:
我不使用至今PHP使用的词,但现在必须... :)PHP导入类与使用关键字
的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;
}
}
和决赛,以下错误:
Fatal error: Class 'AdminFrontEnd' not found in Classes/MainClass.php on line 10
感谢您的帮助!
答
根据@deceze的评论,您需要使用require语句或自动加载来显式导入附加类。
use语句用于别名的类别,正如@deceze所说,可用于从不同名称空间拉入类,或避免类冲突。
拥有一个名为“Main”的类可能并不理想。它是单身人士,还是会有多个'Main's?
也许这个类会更好地命名为'应用'。
从更长远的角度来看,您将需要了解如何使用名称空间,以便如果您使用其他人的类和插件,则不会发生冲突。我已经添加了一个解决方案,还有一些更广泛的信息。
为了让你摆脱困境:
类/ 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
我也强烈建议你阅读有关互操作性的编码标准。首先需要付出很多,但它会帮助您理解使用名称空间和自动加载器的逻辑。
'use'仅用于别名化命名空间。它不会用代码加载文件。您仍然需要使用'require'或自动加载来做到这一点。 – deceze 2014-11-25 11:07:36