我目前不使用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行
答案 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
我还强烈建议您阅读互操作性编码标准。首先要介绍它,但它将帮助您理解使用命名空间和自动加载器背后的逻辑。