为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
白衣非少年 2022-09-17 21:33:38
我有一个问题,我试图从另一个文件中的类调用方法。我已经完成了:当我尝试在我的函数中使用它时,这显示了该类,甚至显示了我试图在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代码的开头)。


查看完整回答
反对 回复 2022-09-17
  • 1 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号