什么时候解析php包含文件?

什么时候解析php包含文件?,php,performance,php-include,Php,Performance,Php Include,什么时候解析PHP包含文件?在启动时,还是在执行期间 我的web表单只调用一个php脚本。根据URL中传递的参数,开关/大小写条件决定脚本将执行的操作。交换机中的每个案例都有自己的包含文件 如果在初始加载期间解析include文件,那么我的php脚本将占用更多的内存/处理时间,这使我相信从web表单调用单个php文件比使用包含所需内容的php文件要好 如果include文件在需要时被解析,那么当代码的一个分支到达一个特定的case语句时,它就会执行include,它告诉我我的代码在内存上会相当保

什么时候解析PHP包含文件?在启动时,还是在执行期间

我的web表单只调用一个php脚本。根据URL中传递的参数,开关/大小写条件决定脚本将执行的操作。交换机中的每个案例都有自己的包含文件

如果在初始加载期间解析include文件,那么我的php脚本将占用更多的内存/处理时间,这使我相信从web表单调用单个php文件比使用包含所需内容的php文件要好

如果include文件在需要时被解析,那么当代码的一个分支到达一个特定的case语句时,它就会执行include,它告诉我我的代码在内存上会相当保守

所以。。。。我的问题。。。什么时候解析PHP包含文件?在初始加载时,还是在执行期间

注意。。。我在这里找不到答案,并且我已经阅读了

如果在运行时到达include语句,文件将被包含。为了非常简洁地总结这意味着什么,以下文件永远不会包括在内:

if (false) {
    include 'foo.php';
}
如果在运行时到达include语句,则会包含文件。为了非常简洁地总结这意味着什么,以下文件永远不会包括在内:

if (false) {
    include 'foo.php';
}
包含在include语句中的文件在执行期间被解析。当php代码点击include语句时,它将开始解析文件以查看其中的内容。 从

include或require语句接受所有 存在于指定的文件中,并将其复制到使用 包含声明

还有其他类似主题的问题:

包含在include语句中的文件在执行期间被解析。当php代码点击include语句时,它将开始解析文件以查看其中的内容。 从

include或require语句接受所有 存在于指定的文件中,并将其复制到使用 包含声明

还有其他类似主题的问题:


由于您担心过多的include会占用内存,我觉得除了直接回答您的问题外,再详细一点也会很有用

首先,为了直接回答您的问题,PHP文件一加载就被解析——如果文件包含语法错误,您将立即被告知;它不会等到它到达那行代码。但是,只有在执行包含include语句的特定代码行时,才会包含后续文件

您关心内存使用情况,但包含大量文件通常不是主要的内存问题,也不是主要的性能问题。事实上,任何大小的大多数现代PHP应用程序都将使用一个框架库,每个页面加载都会加载数百个PHP文件。内存和性能问题更可能是由代码中的错误引起的,而不是简单地加载太多的代码

如果你担心内存和性能,你应该考虑使用PHP的特性。启用此功能后,PHP会在内存中存储系统中包含的所有文件的编译状态的缓存。因此,当它再次运行页面时,当遇到include语句时,它不需要实际加载或解析任何内容;它只是从缓存中获取它

使用OpCache,您可以编写包含大量文件的代码,而不会造成任何性能损失

好消息是OpCache在最近的PHP版本中默认启用,并且对开发人员完全透明——您甚至不需要知道它在那里;打开和关闭的唯一区别是你的网站运行得更快


因此,首先,确保您的PHP版本是最新的v5.5或更高版本。然后确保在PHP.ini文件中启用了OpCache。然后坐下来,不要再担心这些事情了。

因为你担心过多的include会占用内存,我觉得除了直接回答你的问题外,再详细一点会很有用

首先,为了直接回答您的问题,PHP文件一加载就被解析——如果文件包含语法错误,您将立即被告知;它不会等到它到达那行代码。但是,只有在执行包含include语句的特定代码行时,才会包含后续文件

您关心内存使用情况,但包含大量文件通常不是主要的内存问题,也不是主要的性能问题。事实上,任何大小的大多数现代PHP应用程序都将使用一个框架库,每个页面加载都会加载数百个PHP文件。内存和性能问题更可能是由代码中的错误引起的,而不是简单地加载太多的代码

如果您关心的是来自th的内存和性能 是,你应该考虑使用PHP的特性。启用此功能后,PHP会在内存中存储系统中包含的所有文件的编译状态的缓存。因此,当它再次运行页面时,当遇到include语句时,它不需要实际加载或解析任何内容;它只是从缓存中获取它

使用OpCache,您可以编写包含大量文件的代码,而不会造成任何性能损失

好消息是OpCache在最近的PHP版本中默认启用,并且对开发人员完全透明——您甚至不需要知道它在那里;打开和关闭的唯一区别是你的网站运行得更快


因此,首先,确保您的PHP版本是最新的v5.5或更高版本。然后确保在PHP.ini文件中启用了OpCache。那就别担心这些事情。

我认为考虑这一点还为时过早。过早优化是罪恶的根源。你测试过吗?制作一个包含语法错误的文件,如果。。。包括在条件为true时运行一次,在条件为false时运行一次。最后,我认为考虑这个问题还为时过早。过早优化是罪恶的根源。你测试过吗?制作一个包含语法错误的文件,如果。。。包括在条件为true时运行一次,在条件为false时运行一次。断定