Php 使用头文件时包含一次_

Php 使用头文件时包含一次_,php,Php,我有一个简单的问题: include_once("connection.php"); 在我的页眉中,然后在我的内部页面上,我有: <?php include 'header.php';?> 在我的内部页面上?我问的原因是:现在我只在标题中有它,有时我的表单会保存到数据库中,有时则不会。我只是想找出最佳实践是什么。不,include是“递归”生成的 仅供参考:“include”比“include_once”快,因为它不检查包含的文件我通常手动执行,而是调用require(): i

我有一个简单的问题:

include_once("connection.php"); 
在我的页眉中,然后在我的内部页面上,我有:

<?php include 'header.php';?>
在我的内部页面上?我问的原因是:现在我只在标题中有它,有时我的表单会保存到数据库中,有时则不会。我只是想找出最佳实践是什么。

不,include是“递归”生成的


仅供参考:“include”比“include_once”快,因为它不检查包含的文件

我通常手动执行,而是调用
require()

index.php

require("Config.php")
$c = Config();
Config.php

<?php
    if(!DEFINED("CLASS_CONFIG_PHP__")) {
        DEFINE("CLASS_CONFIG_PHP__", 1);
        // All library code here
    }
?>

通过这种方式,我确信所有内容都只定义一次,并且
require
将确保包含的文件没有错误(如果其中有错误,将在该行失败)。

include\u once()将只包含一次文件,而不管使用相同参数调用它多少次。如果使用同一参数调用include()两次,则会引发错误

如果在标题中包含('connection.php'),并且所有内部页面都使用此标题,则不需要在内部页面中也包含此标题


然而,将视图层和业务逻辑层混合使用是一种不好的做法。阅读一些关于MVC模式以及如何使用它的内容。连接应该在调用所有数据库函数的后端完成。一旦调用header.php,您就进入了呈现模式,应该只在该阶段呈现内容。

最佳做法是使用
自动加载程序
/
引导应用程序
之类的东西。但只要使用
include\u一次
就可以将其粘贴到任何需要的文件中
include_once
只包含一次文件。我完全同意@justOnUnderMillennium,我可以添加的唯一其他输入是您也可以使用
require_once
您最好不要将其包含在所有其他文件中,而只包含在主文件中!这个问题开始显得不清楚/太宽泛/基于观点。@Soheyl-这正是问题的关键……什么?这是否意味着?如果他们“需要”包含“一次”呢?这意味着,如果c.php只包含b.php,那么b.php文件中包含的a.php将递归地包含在c.php中。编辑:递归可能不是合适的词…
will
hopply我会错过那个兔子洞;-)@Fred ii-:包含一次只需检查文件是否已包含。你怎么能用“需要”来代替“包含”?include_once是这样的:
函数my_include_once($file){static$files;if(!isset($files[$file]){include$file;$files[$file]=true;}}
<?php
    if(!DEFINED("CLASS_CONFIG_PHP__")) {
        DEFINE("CLASS_CONFIG_PHP__", 1);
        // All library code here
    }
?>