php包括文件实践

php包括文件实践,php,include,Php,Include,如果一个php文件已经被之前执行的其他php文件包含,那么我是否还应该编写它所需要的包含 例如,假设我有3个php文件:parent.php、child.php和food.php parent.php和child.php需要位于food.php中的函数。parent.php首先包括food.php,然后是child.php。这意味着child.php也将加载food.php 那么对于child.php,我应该仍然编写require_once/include_once('food.php'),还是

如果一个php文件已经被之前执行的其他php文件包含,那么我是否还应该编写它所需要的包含

例如,假设我有3个php文件:parent.php、child.php和food.php

parent.php和child.php需要位于food.php中的函数。parent.php首先包括food.php,然后是child.php。这意味着child.php也将加载food.php

那么对于child.php,我应该仍然编写require_once/include_once('food.php'),还是不写


谢谢。

在您的示例中,
child.php
不需要包含
food.php

最好单独包含这些文件。如果由于某种原因,
food.php
没有包含在
parent.php
中,那么您在
child.php
中的代码将无法工作

为了防止这种情况,您可以在两个文件中加载
food.php
,因此如果其中一个文件失败,另一个文件将正常工作

重命名文件将使其更加清晰

functions.php:

//some code
require_once('functions.php');
//some code
require_once('functions.php');
//some code
file1.php:

//some code
require_once('functions.php');
//some code
require_once('functions.php');
//some code
file2.php:

//some code
require_once('functions.php');
//some code
require_once('functions.php');
//some code

理想情况下,您将知道文件包含在哪里,基于框架,甚至仅仅是简单的文件结构

仅仅在这里和那里包含文件“以防万一你忘了”是非常糟糕的编码实践。你的底线在哪里?在header.php中设置meta标记,但在index.php中也设置meta标记,以防它在header.php中不起作用

您可以改为使用require_once(),它将在出现错误时停止(而include_once将继续执行其余脚本),例如:

PHP致命错误:require_once():无法打开所需的“food.PHP”

虽然PHP应该遵守并且只包含“一次”,但它可能会导致重新包含文件、错误/警告等问题,因此只要正确构造文件,并在需要时将文件包含在文件中(通常都位于需要它们的文件顶部)

如果我理解正确,您只需要parent.php首先包含food.php,然后包含child.php,因此parent.php和child.php都可以访问food.php中的任何内容


希望这会有所帮助。

如果您确定它已加载,则无需再次加载。如果不确定,请使用
require\u once()