包含内的PHP包含(不同目录)

包含内的PHP包含(不同目录),php,apache,include,directory,Php,Apache,Include,Directory,我正在从事的当前项目的结构如下: root/index.php root/includes/php/first.php root/includes/php/functions.php 因此index.php包括first.php: <?php include_once("includes/php/first.php"); ?> include_once("functions.php"); 这似乎现在起作用了 通常哪种方法是正确的?我想推出这个项目,这样几乎任何人都可以安装它。

我正在从事的当前项目的结构如下:

  • root/index.php
  • root/includes/php/first.php
  • root/includes/php/functions.php
因此index.php包括first.php:

<?php include_once("includes/php/first.php"); ?>
include_once("functions.php");
这似乎现在起作用了


通常哪种方法是正确的?我想推出这个项目,这样几乎任何人都可以安装它。

包含与执行包含的文件相关。如果您确实希望确保并避免任何歧义,您可以这样做:

include dirname(__FILE__) . "/functions.php";
我总是使用:

include ($_SERVER['DOCUMENT_ROOT']."/include/php/functions.php");

通过这种方式,您可以随时知道自己的位置(来自根目录),并且您的代码可以从一个地方复制到另一个地方。

非常感谢!不确定为什么它在另一种方式之前工作,但这个解决方案将解决未来的问题+1-我打算建议使用
$\u服务器['SCRIPT\u FILENAME']
元素来做同样的事情,但这要好得多。我倾向于为我的PHP应用程序创建一些定义,并将我的根路径和web路径存储在那里以供使用。我听说PHP没有对文件包含进行预增强,而是在到达该状态时执行。。。。但是,如果该文件包含在另一个文件中,从而改变了目录模型,那么它怎么可能与执行包含而不执行某些预处理的文件相关呢?
include ($_SERVER['DOCUMENT_ROOT']."/include/php/functions.php");