如何(无)有意义地评价这个PHP代码:

时间:2013-10-06 09:26:10

标签: php require-once

在另一个地方,我正在讨论以下问题:

我认为这段代码:

if(file_exists("amodule.inc.php")) 
     require_once("amodule.inc.php");  
由于使用require_once

是MISLEADING。

我认为 - 保持逻辑和“措辞”排成一行 - “include_once”是合适的。

就我的理解而言,“要求”和“包含”之间的唯一区别是“如果文件不存在则需要有后果(停止)而不是仅包含警告。”

但是,如果文件不存在,则不会执行require_once代码。因此,从我的观点来看,“要求”是误导。

从肤浅的角度来看,可以使用require_once和

来争论上述代码
if(file_exists("amodule.inc.php")) 
     include_once("amodule.inc.php");
从我的观点来看,

是“相同的”,不是。因为:

“粗略”分析(如项目的自动检查)会抛出一条消息,“amodule.inc.php”是一个重要的项目文件,代码显示的不是。

那么,那些人们会争辩吗?

1 个答案:

答案 0 :(得分:1)

检查文件是否存在然后包含/要求它是无意义的。首先,它会使您的磁盘访问倍增,使操作速度提高两倍。其次,您可能遇到竞争条件问题,其中文件在file_existsinclude调用之间被删除,从而产生错误。如果允许包含失败,只需使用include而不事先file_exists检查。如果不允许包含失败,请使用require。这就是为什么存在这两种结构的原因。使用@可选择禁止通知。

但是为什么首先允许文件包含失败?