如何创建 "include all" 文件?
How to create an "include all" file?
我想创建 "include all" 文件,然后从每个 "real" 文件而不是每次都包含一堆文件,包括刚刚创建的 "include all" 文件。
看看例子 -- 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");
?>
但是它不起作用——如果我执行 "a.php" 我得到错误 "inc.php" 未发现包含在 "b.php" 中,并且在执行 "b.php" 时每个类比来自 "a.php".
我看不出我的代码有什么问题 -- 如何解决?
您应该研究 PHP 中的自动加载以自动包含任何尚未包含的 class。很有帮助:PHP Manual
Also, here is a quick tutorial I wrote on the subject.
或者,您可以创建一个全局 PHP 文件 (global.php
) 并将其包含在每个页面上。在global.php
里面include_once
有你需要的所有文件。但是,就像我说的,上面的方法是优先的。
如果您使用 OOP,一定要按照 cjhill 的建议进行自动加载。
但是,如果您正在做一些不太有条理的事情,并且需要手动包含文件,我建议在指定包含路径时始终使用 __DIR__
常量。这样包含路径将相对于它们在其中定义的文件,而不是入口点文件。
include_once __DIR__ . "/../../includes.php".
您应该将 "include" 视为复制粘贴,只需将代码从包含的文件拖放到包含调用的位置。因此,包含文件中的文件路径将相对于最初请求的文件,除非您使用 __DIR__
.
之类的方式指定绝对路径
有关详细信息,请参阅手册中的 Magic Constants。
你有一个循环。文件 A/a.pho 被包含在文件 inc.php 中,所以为什么在文件 A/a.php 的顶部有一个要求 inc.pho?
require 函数 q 将括号中的文件转换为调用该函数的文件。
文件 A/a.php 和 A/B/B.php 将在附加到 inc.php[ 后继承 inc.php 的所有作用域数据=10=]
一个好方法是使用这样的绝对路径:
Php < 5.3 :
require_once(dirname(__FILE__) . '../inc.php');
Php 5.3 :
require_once(__DIR__. '../inc.php');
我想创建 "include all" 文件,然后从每个 "real" 文件而不是每次都包含一堆文件,包括刚刚创建的 "include all" 文件。
看看例子 -- 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");
?>
但是它不起作用——如果我执行 "a.php" 我得到错误 "inc.php" 未发现包含在 "b.php" 中,并且在执行 "b.php" 时每个类比来自 "a.php".
我看不出我的代码有什么问题 -- 如何解决?
您应该研究 PHP 中的自动加载以自动包含任何尚未包含的 class。很有帮助:PHP Manual
Also, here is a quick tutorial I wrote on the subject.
或者,您可以创建一个全局 PHP 文件 (global.php
) 并将其包含在每个页面上。在global.php
里面include_once
有你需要的所有文件。但是,就像我说的,上面的方法是优先的。
如果您使用 OOP,一定要按照 cjhill 的建议进行自动加载。
但是,如果您正在做一些不太有条理的事情,并且需要手动包含文件,我建议在指定包含路径时始终使用 __DIR__
常量。这样包含路径将相对于它们在其中定义的文件,而不是入口点文件。
include_once __DIR__ . "/../../includes.php".
您应该将 "include" 视为复制粘贴,只需将代码从包含的文件拖放到包含调用的位置。因此,包含文件中的文件路径将相对于最初请求的文件,除非您使用 __DIR__
.
有关详细信息,请参阅手册中的 Magic Constants。
你有一个循环。文件 A/a.pho 被包含在文件 inc.php 中,所以为什么在文件 A/a.php 的顶部有一个要求 inc.pho?
require 函数 q 将括号中的文件转换为调用该函数的文件。
文件 A/a.php 和 A/B/B.php 将在附加到 inc.php[ 后继承 inc.php 的所有作用域数据=10=]
一个好方法是使用这样的绝对路径:
Php < 5.3 :
require_once(dirname(__FILE__) . '../inc.php');
Php 5.3 :
require_once(__DIR__. '../inc.php');