php如何在多个用户访问时处理文件“需要”?

时间:2013-03-16 03:43:39

标签: php require require-once

伙计们,如果我需要一个php脚本中的文件,并且它是一个有效的文件,这个文件只会被包含一次,但很多时候这个脚本被用户访问,或者只包括每次访问但是这似乎是浪费资源?顺便说一句,如果这很重要,我使用apache2作为服务器。 而且,既然有require_once,为什么要存在?由于require_once已经完成了require的工作,因此不会重新包含。有没有坚定的理由,我的意思是在什么情况下需要比require_once更好?

2 个答案:

答案 0 :(得分:1)

为了更好地理解这些

require_once语句与require相同,但PHP会检查文件是否已被包含,如果是,则不再包括(require)。

http://php.net/manual/en/function.require-once.php

要求与include相同,除非失败,它还会产生致命的E_COMPILE_ERROR级别错误。换句话说,它将暂停脚本,而include仅发出警告(E_WARNING),允许脚本继续。

http://www.php.net/manual/en/function.require.php

答案 1 :(得分:0)

简短回答:将PHP脚本视为一个程序。您的脚本在每次用户访问时运行,并且每次都会加载任何包含或要求(ed)的文件。

因此,如果100个用户同时访问您的PHP页面并且该页面需要另一个脚本,那么这个其他脚本将被加载100次(最有可能来自磁盘缓存,所以它并没有那么糟糕)。 / p>

至于require和require_once,RTM之间的区别。简短版本:require_once将确保特定文件在脚本的生命周期内仅需要(d)一次(这对于防止包含循环最有用),而require将允许您包含相同的代码片段脚本中的多个位置(例如,在页面顶部和底部添加相同的广告横幅)。

有一些缓存机制(如memcached)可以帮助减少资源浪费(但不是按照您对问题的期望)。