1

关于 include/requre_once 的快速问题。我有一些代码对于几个页面来说是通用的,我觉得将它们放在一个文件中从每个页面调用而不是重复代码会更好。

我在 while 循环中调用 include_once,我注意到我必须使用 include('file.php') 否则它只会加载(并显示)一次。我猜我的假设(错误地)是它将在第一个循环中加载它并将代码保留在缓存中,以避免每次循环迭代都必须访问磁盘。

我四处寻找“load_once_and_cache”类型的命令,但没有找到任何东西。

有没有人对此有任何建议,或者将代码放在每个页面中是唯一的选择。

再次感谢!

4

2 回答 2

6

这是一种让内容进入循环的非常低效的方法。PHP 需要在每次include()调用时从磁盘读取文件。你最好创建一个函数(可能在包含的文件中)。包含一次定义函数的文件,然后在循环中调用该函数。

依赖包含文件的输出并不总是好的做法,除非在编写视图时(即使那样我会在做之前三思而后行)。要求将文件包含在循环中会产生流控制和文件包含的奇怪混合,这可能难以调试和维护。

于 2012-04-05T19:19:01.020 回答
1

由于您周围的空气闻起来像一个复杂的结构和大量的代码,我将假设您正在使用 OOP 技术来完成工作。

在这种情况下,也许您会希望将自动加载类视为一种更高效、更快速的方法:

http://php.net/manual/en/language.oop5.autoload.php

您还需要阅读评论以充分了解正在发生的事情并找到一些真正的方法来管理各种情况。

于 2012-04-06T00:36:15.287 回答