使用Include()或嵌套Include 's()有什么缺点吗?


Are there any downsides from using Include() or nested include's()?

我不是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/,这将使您的生活在短期和长期运行更容易!