Php 使用未按预期工作的外部类

Php 使用未按预期工作的外部类,php,Php,我遇到一个问题,我试图从另一个文件中的类调用一个方法。我已经完成了:use Tests\Feature\testName,这显示了当我尝试在函数中使用它时的类,甚至显示了我试图在testName文件中调用的函数。但是,当我尝试只运行PHP文件时,会出现以下错误: 未捕获错误:在路径\到\文件中找不到类“Tests\Feature\testName” 我对它为什么不起作用有点困惑,如果有人能解释为什么不起作用,我将非常感激!: 在PHP中,类不包括在使用use指令的情况下。您需要通过包含类所在的文

我遇到一个问题,我试图从另一个文件中的类调用一个方法。我已经完成了:use Tests\Feature\testName,这显示了当我尝试在函数中使用它时的类,甚至显示了我试图在testName文件中调用的函数。但是,当我尝试只运行PHP文件时,会出现以下错误:

未捕获错误:在路径\到\文件中找不到类“Tests\Feature\testName”


我对它为什么不起作用有点困惑,如果有人能解释为什么不起作用,我将非常感激!:

在PHP中,类不包括在使用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();
正常方式 现在,人们使用的代码会自动加载带有模式的类,您可以使用其他模式,在这里不会进入基于意见的讨论,或者,如果您的项目很小,并且您不想使用它,因为您对它没有信心,请手动加载您的类。例如,将所有类放在一个类文件夹中,并使用与该类相同的名称命名该文件,然后可以使用以下代码段:

spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

要加载所需的所有类,您可能希望将其放在PHP代码的开头。

当我尝试只运行PHP文件时。。。您已经包含了包含该类的另一个文件,对吗?或者您是否配置了加载程序?为什么选择向下投票我还使用Tests\Feature\testName来访问它的函数?它不是这样工作的。您可以配置加载程序,也可以需要该类的文件,use only允许您不使用该类的FQDN。您可能想阅读以下内容:谢谢。这可能是最好的解释了!: