为什么 "include" 在示例代码中不起作用?

Why doesn't the "include" work in the example code?

方向结构如下

当我尝试将 DBLink.php class 包含到 CalendarClass.php 时,我收到以下错误消息:

警告:包括(../Database/DBLink.php):无法打开流:D:\apache\htdocs\Engine\Classes\CalendarClass.[= 中没有这样的文件或目录第 3 行 92=]

警告: include(): 在 D 中打开 '../Database/DBLink.php' 以包含 (include_path='D:\apache\php\PEAR') 失败:\apache\htdocs\Engine\Classes\CalendarClass.php 第 3 行

致命错误:Class 'DBLink' 未在第 10 行的 D:\apache\htdocs\Engine\Classes\CalendarClass.php 中找到[=12] =]

CalendarClass.php内容:

<?php

include "../Database/DBLink.php";

class CalendarClass{

    private $link;

     function __construct() {
        $this->link = new DBLink();
    }

    function UpdateCalendar(){
        $this->link->ClearCalendar();
    }

}

?>

将 DbLink.php 包含到 CalendarClass.php 中的正确方法是什么?

解决方案:将包含更改为包含 __DIR__ . "/../Database/DBLink.php"

你需要使用

__DIR__ . "/../Database/DBLink.php";

PHP 正在查找此文件,但从另一个 root path.

开始

您需要提供完整路径,以便 PHP 查找正确的路径。

__DIR__ 提供文件所在目录的路径。

更简单的方法是使用 autoloading