我编写了一组我在各种脚本中使用的基本函数,但在同一个脚本中很少使用一次。
由于我只是在编译语言编程中学习,我可能不完全理解解释/ JIT编译语言的动态:当使用apache的PHP模块时,每个指令都被编译然后执行(例如,它发生在CLI中) ,或者是整个脚本JIT编译然后执行?
如果是每条指令编译/执行,我应该在文件的开头有一个require_once
块(这对我来说似乎更加明智),或者只有在我将它包含在内才更有效率需要它们(在if
块内,所以...)?
答案 0 :(得分:3)
如果包含的脚本是程序性的,则它们包含在内,这意味着在包含发生时会评估任何变量定义,可执行代码等。当然,如果它是一个类,那么你可以从那里访问该类。在某些情况下,有些人会选择使用switch或if语句来决定是否包含一个包含要执行的逻辑的文件。它可以很方便,也可以随意使用。
如果你因为include而担心内存使用,那么在我的书中使用if if block并不是一件可怕的事情,但这应该是一个非常慎重的选择,因为你会得到一堆硬核OO们立即对你的案子进行了审理,大声说这是糟糕的设计。
我尝试将所有包含放在文件的顶部,除非它是一个完全多余且特定于单个用途的文件。
希望有所帮助。
答案 1 :(得分:3)
与编译语言不同,你所建议的是可能的;您可以将include
语句放在if()
块中,并且只有在块运行时才会运行它们。是的,您将通过此方法实现性能提升。
在PHP中,include
(以及其他包含运算符)的行为非常符合逻辑:就好像包含文件中的代码已经被复制并粘贴在那里一样。即使在调用函数之后,也可以在文件中的任何位置定义函数;因此,在PHP中,您可以通过将include
语句放在文件的底部而不是顶部来提高可读性。