我有一个问题,我试图从另一个文件中的类调用方法。我已经完成了:当我尝试在我的函数中使用它时,这显示了该类,甚至显示了我试图在testName文件中调用的函数。但是,当我尝试仅运行PHP文件时,我收到此错误:use Tests\Feature\testNameUncaught Error: Class 'Tests\Feature\testName' not found in path\to\file我对为什么它不起作用有点困惑,如果有人能解释为什么会这样,我将不胜感激!:)
1 回答

翻阅古今
TA贡献1780条经验 获得超5个赞
在 PHP 中,类不仅仅使用指令即可包含在内。您需要通过包含类所在的文件来加载它们。use
有什么用?(哈哈)use
use让您不使用您正在使用的类的 FQDN,请参阅下面的代码段:
use \A\Long\Namespace\Foo;
$foo = new Foo();
// Without use, you would have needed : $foo = new \A\Long\Namespace\Foo();
无聊的方式
这就是PHP开发人员多年前过去的做法,它只是明确要求文件:
// Foo.php
class Foo {}
// index.php
require_once( __DIR__ . '/Foo.php');
$foo = new Foo();
正常方式
现在,人们使用自动加载带有模式的类的代码,您可以使用Composer(其中包括,不会在此处输入基于意见的讨论),或者,如果您的项目很小并且您不想使用它,因为您对它没有信心,请手动加载您的类。例如,将所有类放在一个文件夹中,并使用与类相同的名称命名文件,然后可以使用以下代码段:class
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.class.php';
});
要加载所需的所有类(您可能希望将其放在PHP代码的开头)。
- 1 回答
- 0 关注
- 101 浏览
添加回答
举报
0/150
提交
取消