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
}
?>