如何创建"包括所有"文件?

时间:2015-06-09 06:16:48

标签: php include

我想创建"包括所有"文件,然后从每个"真实"文件而不是每次都包含一堆文件,包括刚创建的"包括所有"文件。

看一下示例 - inc.php:

<?php
require_once('A/a.php');
require_once('A/B/b.php');
?>

A / a.php只会:

<?php
require_once('../inc.php'); 
?>

A / B / b.php:

<?php
require_once("../../inc.php");
?>

然而它不起作用 - 如果我执行&#34; a.php&#34;我得到错误&#34; inc.php&#34;未被发现包含在&#34; b.php&#34;中,以及执行&#34; b.php&#34;来自&#34; a.php&#34;。

的类比

我不知道我的代码有什么问题 - 如何解决?

4 个答案:

答案 0 :(得分:2)

您应该在PHP中查看自动加载以自动包含尚未包含的任何类。这非常有用:PHP Manual

Also, here is a quick tutorial I wrote on the subject.

或者,您可以创建一个全局PHP文件(global.php),并在每个页面上包含该文件。在global.php include_once您需要的所有文件中。但是,就像我说的,上面的方法是优惠的。

答案 1 :(得分:1)

如果您正在使用OOP,请务必按照cjhill的建议进行自动加载。

但是,如果您正在做一些不那么有条理的事情,并且需要手动包含文件,我建议在指定包含路径时始终使用__DIR__常量。这样,包括路径将相对于它们所定义的文件,而不是入口点文件。

include_once __DIR__ . "/../../includes.php".

你应该想到&#34;包括&#34;作为复制粘贴,只需将代码从包含的文件中删除到包含调用的位置即可。因此,包含文件中的文件路径将相对于最初请求的文件,除非您使用__DIR__之类的内容指定绝对路径。

有关详细信息,请参阅手册中的Magic Constants

答案 2 :(得分:1)

一个好方法是使用这样的绝对路径:

Php&lt; 5.3:

require_once(dirname(__FILE__) . '../inc.php');

PHP 5.3:

require_once(__DIR__. '../inc.php');

答案 3 :(得分:0)

你有一个循环。文件A / a.pho被包含在文件inc.php中,那么为什么在文件A / a.php的顶部有一个要求inc.pho?

require函数q将括号中的文件放入调用该函数的文件中。

文件A / a.php和A / B / B.php会将inc.php中的所有范围数据附加到inc.php