【问题标题】:How PHP require file logic works?PHP 要求文件逻辑如何工作?
【发布时间】:2012-11-15 11:26:39
【问题描述】:

文件树;

  • boot.php
  • 面板/index.php
  • 面板/inc/start.php
  • panel/inc/functions.php

流程:

  • index.php;需要'inc/start.php'
  • 开始.php;需要“../boot.php”和“functions.php”
  • (require_once 'x.php' used)

调用 index.php 时一切正常。为什么我不必使用 ../../boot.php 而不是 ../boot.php? 如果相对文件夹是 /panel,那么 require 'functions.php' 应该会失败。如果是 /panel/inc,require '../boot.php' 应该会失败。但一切都有效。怎么样?

注意:我知道我应该使用绝对文件夹来包含文件。我只是想了解这个示例的工作原理。

【问题讨论】:

标签: php include-path


【解决方案1】:

至于 PHP 手册:

http://php.net/manual/en/function.require-once.php

http://www.php.net/manual/en/function.include.php

如果定义了路径 - 是否是绝对路径(以驱动器号开头 或 \ 在 Windows 上,或 / 在 Unix/Linux 系统上)或相对于 当前目录(以 . 或 .. 开头)

当 PHP 包含 / 需要一个文件时,它会查找相对于当前文件位置的路径。

【讨论】:

  • 我也打算链接到手册,你打败了我。 =)
  • 实际上这部分说“在失败之前最后检查调用脚本自己的目录和当前工作目录”回答了我的问题。因为我认为只需要一个目录即可检查为相对目录。谢谢。
【解决方案2】:

您的 index.php 文件在处理时将包括 inc/start.php。所以你的 index.php 看起来像

<?php 
 //inc/start.php file content here
 //require '../boot.php';

所以 boot.php 将像它一样包含在 index.php 本身中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2021-07-05
    • 1970-01-01
    • 2011-05-25
    • 2011-01-20
    相关资源
    最近更新 更多