2011-10-28 14 views

回答

4

它将包含文件十次。

如果这是一个问题,你可以使用include_once

+0

如果我把include_once在for循环不会只是包括了一次,然后换另外9次展示什么? – Macmee

+0

嗯,是的:P有时你希望它包括十次,有时你不会。 – sdleihssirhc

1

很简单的检查 - 放一个sleep()在那里,有一个文件做一些输出,以及睡眠周期的一个过程中,修改此文件来改变它的输出。

whatever.php:

​​

则休眠中的一个期间,使用另一壳更改为 “版本2.0”。如果输出没有改变,那么PHP已经加载了文件ONCE并缓存了它 - 你仍然会得到10个文件输出/效果的副本,但是你会知道PHP没有在磁盘上打10次。

+0

确定PHP中包含方法行为的好方法,谢谢:) – Macmee

0

如果您问是否将文件兑现并从内存中包含,而不是解析并一次又一次编译为PHP字节码: - 是的,如果包含给定文件,您将处理相同的文件n次n次。这是标准的PHP行为,但...

你可以改变这一点(在我看来,你正在寻找?)。正如我所说的,PHP将包括该文件的第一时间,除非你使用任何PHP缓存模块像APC将不缓存为你 ...:

当使用APC,事情会有所不同,输出的结果将是相同的,但服务器行为将改变很多!第一次包含一个文件时,它将被解析,编译成PHP字节码(机器可读指令)并存储在共享内存中。后来,除非给定的文件被修改,否则会再次处理NOT! PHP将直接进入程序的预编译版本并执行它,为您节省大量时间和资源!适用于高流量的Web应用程序。

更多关于APC here