Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一个网站上放很多PHP包含可以吗?_Php_Include - Fatal编程技术网

在一个网站上放很多PHP包含可以吗?

在一个网站上放很多PHP包含可以吗?,php,include,Php,Include,到目前为止,我的网站上大约有3个PHP包含 <?php include("includes/header.html"); ?> 有什么理由我不应该添加一吨这样的东西吗?没有。它们经常被大量使用,但更多的时候被用于包含其他PHP文件。这些PHP文件通常会包含其他文件,因此不必担心 顺便说一句,如果您确实使用此技术来包含其他PHP文件(例如,包含您正在使用的函数的库文件),最好使用require\u once(还有include\u once,以及普通require)require

到目前为止,我的网站上大约有3个PHP包含

<?php include("includes/header.html"); ?>


有什么理由我不应该添加一吨这样的东西吗?

没有。它们经常被大量使用,但更多的时候被用于包含其他PHP文件。这些PHP文件通常会包含其他文件,因此不必担心


顺便说一句,如果您确实使用此技术来包含其他PHP文件(例如,包含您正在使用的函数的库文件),最好使用
require\u once
(还有
include\u once
,以及普通
require
)<如果找不到其参数,则代码>require将导致错误,并且不会继续尝试呈现页面
require\u once
(和
include\u once
)不会多次包含同一个文件,即使您从不同的地方调用
require\u once
(或
include\u once
)也不例外。

编写面向对象的代码并升级到PHP5有一个好处:可以避免“大量的包含”使用。

我怀疑您正在做这样的事情:

<?php
  include("session_and_headers.php");
  include("top_nav.html")
  include("right_sidebar.html");
?>

 ... actual content generation code ...

<?php
  include("footer.html");
  include("js_loader.php");
?>

... 实际内容生成代码。。。
对于简单的静态站点,或者在用户只有几个不同视图的情况下,这并没有本质上的错误

但是,如果您只想在某些类型的页面上使用稍微不同的侧栏,会发生什么?您将逻辑放在哪里来确定这一点,以便下一个继承您的代码的人能够清楚地看到这一点

如果您遇到这些复杂情况,我建议您使用MVC方法(即使您主要使用它的视图/控制器方面)

如果您正在用PHP创建一个只需要共享公共元素的nn页面站点,那么没有理由避免根据需要简单地包含文件


不要把它看得太多,因为它对PHP不好,而要把它看得太多,因为它很难维护吗?

唯一的缺点是性能—每个都包括系统调用的成本。对于3或10,除非你的流量很大,否则都是很小的变化,但是大约100个可能是个问题。解决方案是使用字节码缓存(如apc)并将realpath_cache_size变量设置为更高的值(默认值足以容纳大约100-200个文件,具体取决于路径长度)。
除此之外,没什么问题

你能定义一个“吨”吗?更多的包含通常意味着要跟踪更多的文件。。。如果你用合乎逻辑的方式来做,它会工作的……我之所以使用它,是因为我不想在每个页面上复制所有相同的HTML。@omnix-那你就没事了。