-1

文件树;

  • 引导.php
  • 面板/index.php
  • 面板/inc/start.php
  • 面板/inc/functions.php

过程:

  • 索引.php;需要'inc/start.php'
  • 开始.php;需要“../boot.php”和“functions.php”
  • (require_once 'x.php' 使用)

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

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

4

2 回答 2

2

至于 PHP 手册:

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

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

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

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

于 2012-11-27T18:55:55.403 回答
0

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

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

所以 boot.php 将像它一样被包含在内,包括 index.php 本身

于 2012-11-27T18:56:54.070 回答