问题很简单:在触摸磁盘时,这两个示例是相同的,还是场景#2触摸磁盘两次?
场景#1
include '/path/to/file.PHP';
场景#2
if (file_exists('/path/to/file.PHP'))
include '/path/to/file.PHP';
我知道场景#1触及磁盘一次.现在,据我所知,file_exists()缓存路径以及文件是否存在.要清除该缓存,您需要调用clearstatcache().
但确实包括,等等,也使用缓存?或者它是file_exists()独有的?
这两个示例都触摸磁盘两次 – 读取目录然后读取
文件.在第一个示例中,这两个都在一个命令中发生,第二个命令将它们分开. include()不太可能再次读取目录,因为你的操作系统应该包含某种高清缓存,这应该至少持续这么久.
但你显然是在试图过度优化某些东西.除非您在脚本中使用> 100次,否则两个选项之间不会有任何性能差异.