【问题标题】:Import php class from file从文件中导入 php 类
【发布时间】:2019-05-17 22:38:13
【问题描述】:

我正在使用PHP 7.3.5,我有两个文件,类Foo(),位于目录./db/models 和我的main.php,位于项目的根目录中。

<?php

use Goutte\Client;

class Foo
{

    function getHello()
    {
       echo "Hello world!<br>";
    }


}

我的main.php 文件如下所示:

<?php

include("./db/models/Foo.php");

$foo = new Foo;

$foo->getHello();

但是,我收到以下错误:

PHP 致命错误:未捕获的错误:在 C:\Users\Desktop\Code\test-project\main.php:5 中找不到类“Foo”

任何建议我做错了什么?

【问题讨论】:

  • 包含是否会引发任何警告?替换为 require 看看是否出现致命错误
  • 我不明白为什么这会失败。那是您拥有的确切代码吗? Foo.php-file 中没有命名空间声明?
  • @MagnusEriksson ^^ pos 404 错误(在引擎盖下)包括我的预感
  • 包含文件时,最好使用__DIR__ 获取您所在文件的绝对路径。如果只使用include 'db/...';,它将从最顶部加载相对文件文件(通常是 index.php 文件)。查看this answer 更详细地解释它。
  • 我还建议您确保在开发时使用error_reporting(E_ALL);,以便确保您也看到所有警告。错误报告级别也可以在您的 php.ini 文件中设置。

标签: php


【解决方案1】:
include("db/models/Foo.php");

由于您的 db 文件夹位于路由内部,因此您可以像这样简单地访问它。

您不需要 ./ 移动一步,因为您的 main 已经在根目录中。您需要在嵌套文件夹中移动才能到达Foo.php

由于您没有提供完整的树,我假设您的 Foo.php 路径是:

C:\Users\Desktop\Code\test-project\db\models\Foo.php

【讨论】:

  • 谢谢。然后我怎样才能加载这个类?
  • 像你一样。您的代码应该从那里开始工作。只需使用:$foo = new Foo(); 就可以了
【解决方案2】:

./db 是你的隐藏目录??如果是,这可能会导致加载文件出现问题。请验证目录

【讨论】:

    猜你喜欢
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2020-11-01
    • 2020-07-16
    • 2020-04-26
    • 2012-03-11
    • 2014-10-10
    相关资源
    最近更新 更多