【问题标题】:Why doesn't the "include" work in the example code?为什么“包含”在示例代码中不起作用?
【发布时间】:2016-07-14 15:34:10
【问题描述】:

方向结构如下

  • 源文件夹

    • 引擎
        • CalendarClass.php
      • 数据库
        • 其他
        • DBLink.php
    • 字体
    • 图片
    • JS
    • 页面

      • 日历.php
    • 风格

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

警告:include(../Database/DBLink.php):未能打开流:第 3 行的 D:\apache\htdocs\Engine\Classes\CalendarClass.php 中没有这样的文件或目录 em>

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

致命错误:第 10 行的 D:\apache\htdocs\Engine\Classes\CalendarClass.php 中找不到类“DBLink”

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”是工作!非常感谢 KhorneHoly!你为我节省了很多时间!

标签: php mysql apache include


【解决方案1】:

你需要使用

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

PHP 正在查找此文件,但以不同的 root path 开头。

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

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

更简单的方法是使用autoloading

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      • 2018-11-14
      相关资源
      最近更新 更多