我不是PHP专家。我试图增加使用包括(),使我的网站代码尽可能干净,而不是只是复制,例如,在所有页面的标题的代码。我有两个问题
1。在服务器请求,速度,…方面,使用include()是一个很好的做法吗?
等等?index . php
(一堆代码)
<? include("connect.php") ?>;
(一堆代码)
<? include("header.php") ?>;
(一堆代码)
<? include("footer.php") ?>;
2。也可以使用嵌套的include()吗?例子:
header。php (一些代码)
<? include("searchFormInput.php") ?>;
现在index.php将包括header.php,然后header.php也将包括searchFormInput.php这样行吗?
Thanks to lot
是的,包括是一种惯例。
是的,include会给带来轻微的性能损失(非常小)。
但是包含给了你可读性增益,并且由于它将更容易使用DRY规则。请记住以下内容:
-
如果文件包含一些应该只执行一次的代码(一些设置,类定义,函数定义等),使用
include_once()
(如果在同一文件名上再次调用它将没有影响), -
如果文件包含一些多次执行的代码(例如:,使用简单的
include()
, -
如果您的应用程序需要工作(例如。一些安全代码,一些设置等),使用
require()
代替include()
或require_once()
代替include_once()
-如果文件找不到,PHP将抛出致命错误,并将停止执行脚本,
嵌套包含的主要缺点是,您可能会遇到交叉依赖导致一个文件被包含多次的情况。但是,使用include_once()
很容易解决这个问题。
然而,在您的示例中,header.php
包括searchFormInput.php
,假设这些文件主要生成HTML输出而不是解析类和依赖项,您可能不会有问题。
connect.php includes config.php
session.php includes config.php
你需要使用include_once('config.php')
include,require将读取文件并执行其中的代码。
我对include和file_get_contents的速度做了一些测试结果是include和require比较慢所以我的建议是不要增加包含的数量
我认为你应该看一下PHP的自动加载。您不需要关心每个文件的包含情况。调整一下你的自动上膛,这些就都搞定了。你需要用它来做面向对象编程
就性能而言,这很好,并且在一定程度上保持代码干净和可重用。但是,我建议您使用模板来包含这类代码,将所有信息加载到变量中,然后在模板中调用它们。考虑一个模板引擎http://www.smarty.net/或一个PHP框架或CMS http://drupal.org/,这将使您的生活在短期和长期运行更容易!