Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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_Performance_Include_Jit - Fatal编程技术网

PHP:我应该把我的包含放在哪里?

PHP:我应该把我的包含放在哪里?,php,performance,include,jit,Php,Performance,Include,Jit,我在各种脚本中使用了一组基本函数,但在同一个脚本中很少超过一次 由于我只学过编译语言编程,我可能不完全理解解释/JIT编译语言的动态:当使用apache的PHP模块时,是每一条指令都被编译然后执行(例如,就像在CLI中发生的那样),还是整个脚本都被JIT编译然后执行 如果是按指令编译/执行,我应该在文件开头有一块require\u once(对我来说这似乎更合理),还是只在需要时才包含它们(在if块内等等…)更有效?如果包含的脚本是程序性的,它们被内联包含,这意味着任何变量定义、可执行代码等都会

我在各种脚本中使用了一组基本函数,但在同一个脚本中很少超过一次

由于我只学过编译语言编程,我可能不完全理解解释/JIT编译语言的动态:当使用apache的PHP模块时,是每一条指令都被编译然后执行(例如,就像在CLI中发生的那样),还是整个脚本都被JIT编译然后执行


如果是按指令编译/执行,我应该在文件开头有一块
require\u once
(对我来说这似乎更合理),还是只在需要时才包含它们(在
if
块内等等…)更有效?

如果包含的脚本是程序性的,它们被内联包含,这意味着任何变量定义、可执行代码等都会在包含发生时进行计算。当然,如果它是一个类,那么您可以从那里访问该类。在某些情况下,有些人选择使用开关或if语句来决定是否包含包含要执行的逻辑的文件。它可以是方便的,也可以是草率的,这取决于它的使用方式

在我的书中,如果你因为include而担心内存使用,那么在If块中使用它们并不是一件可怕的事情,但这应该是一个非常慎重的选择,因为你会有一大群核心OO人员在你的案例中立即叫嚣这是一个糟糕的设计

我尽量把我所有的包含放在一个文件的顶部,除非它是一个完全多余且特定于一个单一用法的文件


希望这会有所帮助。

如果包含的脚本是过程性的,那么它们将被内联包含,这意味着任何变量定义、可执行代码等都将在包含时进行计算。当然,如果它是一个类,那么您可以从那里访问该类。在某些情况下,有些人选择使用开关或if语句来决定是否包含包含要执行的逻辑的文件。它可以是方便的,也可以是草率的,这取决于它的使用方式

在我的书中,如果你因为include而担心内存使用,那么在If块中使用它们并不是一件可怕的事情,但这应该是一个非常慎重的选择,因为你会有一大群核心OO人员在你的案例中立即叫嚣这是一个糟糕的设计

我尽量把我所有的包含放在一个文件的顶部,除非它是一个完全多余且特定于一个单一用法的文件


希望有帮助。

与编译语言不同,您的建议是可能的;您可以将
include
语句放入
if()
块中,并且仅当块运行时才会运行它们。是的,您将通过这种方法实现性能的提高


在PHP中,
include
(以及其他包含操作符)的行为非常合乎逻辑:就好像包含文件中的代码已经被复制并粘贴到了那里。也可以在文件中的任何位置定义函数,即使在调用函数之后;因此,在PHP中,您可以通过将
include
语句放在文件的底部而不是顶部来提高可读性。

与编译语言不同,您的建议是可能的;您可以将
include
语句放入
if()
块中,并且仅当块运行时才会运行它们。是的,您将通过这种方法实现性能的提高


在PHP中,
include
(以及其他包含操作符)的行为非常合乎逻辑:就好像包含文件中的代码已经被复制并粘贴到了那里。也可以在文件中的任何位置定义函数,即使在调用函数之后;因此,在PHP中,您可以通过将
include
语句放在文件的底部而不是顶部来提高可读性。

您可以在任何地方包含。但是如果你习惯了一些面向对象的MVC框架,那就更好了。我正在努力做到这一点。我已经编码了很多java和C++,计划在PHP中运行完整的OOP,但是我猜里面有一个ANSI C的家伙…问题是(因为其中包括索引页脚本):哪个选项更有效?或者更好:有什么区别吗?从长远来看,最好避免包含无意义的内容,并使用编写良好的自动加载程序,它总能找到您的类。。。你在任何地方都可以使用的东西,你可以预先包含,这样自动加载程序就不会被触发…自动加载,这是一件我不知道的很酷的事情:)每当我试图通过缓存位置或其他方式“改进”自动加载时,我从来没有在做几个fstat的时候打败过FS。。我工作的网站最近在PHP上点击了500k次,并且几乎没有加载100%的自动加载设置。我们使用rails约定,其中类名SomethingBlarg位于SomethingBlarg.php中,并且有一些组织路径(模型、控制器、管理器)…您可以在任何地方包含。但是如果你习惯了一些面向对象的MVC框架,那就更好了。我正在努力做到这一点。我已经编码了很多java和C++,计划在PHP中运行完整的OOP,但是我猜里面有一个ANSI C的家伙…问题是(因为其中包括索引页脚本):哪个选项更有效?或者更好:有什么区别吗?从长远来看,最好避免包含无意义的内容,并使用编写良好的自动加载程序,它总能找到您的类。。。你在任何地方都可以使用的东西,你可以预先包含,这样自动加载程序就不会被触发…自动加载,这是一件我不知道的很酷的事情:)每当我试图通过缓存位置或其他方式“改进”自动加载时,我从来没有在做几个fstat的时候打败过FS。。我工作的网站最近在PHP上点击了500k次,并且几乎没有加载100%的自动加载设置。我们使用rails约定,其中