关于include / requre_once的快速提问。我有一些常见于几页的代码,我认为最好是在每个页面调用文件而不是代码重复。
我在while循环中调用include_once,我注意到我必须使用include('file.php'),否则它只会加载它(并显示它)一次。我想我(假设)假设它将在第一个循环上加载它并将代码保留在缓存中以避免在循环的每次迭代中访问磁盘。
我四处寻找“load_once_and_cache”类型的命令,但没有找到任何东西。
有没有人对此有任何建议,或者是将每个页面中的代码作为唯一选项。
再次感谢!
答案 0 :(得分:6)
这是一种将内容放入循环的非常低效的方法。 PHP需要在每次include()
调用时从磁盘读取文件。你创建一个函数(可能在包含的文件中)要好得多。包含文件一次,定义函数,然后在循环中调用函数。
依赖于包含文件的输出并不总是好的做法,除非编写视图时(即使这样我在做之前要三思而后行)。要求将文件包含在循环中会产生流控制和文件包含的奇怪混合,这很难调试和维护。
答案 1 :(得分:1)
由于你周围的空气气味像一个复杂的结构和大量的代码,我会假设你正在使用OOP技术来完成任务。
在这种情况下,您可能希望将自动加载类视为一种更有效,更快速的方法:
http://php.net/manual/en/language.oop5.autoload.php
您还需要阅读评论,以便充分了解正在发生的事情并找到一些管理各种情况的方法。