使用PHP的include_once
或require_once
而不是使用带有标头保护的类C include
更有效吗?
即,
include_once 'init.php';
与
include 'init.php';
//contents of init.php
if (!defined('MY_INIT_PHP')) {
define('MY_INIT_PHP', true);
...
}
答案 0 :(得分:9)
“require_once”和“include_once”通常比“require”和“include”慢一点,因为它们执行检查文件是否已经加载过。
但是差异只在真正复杂的应用程序中才有意义,在这些应用程序中你应该进行自动加载,如果您的自动加载器编码良好,则不需要require_once / include_once。
在大多数简单的应用程序中,为方便起见,最好使用require_once / include_once。
标头防护方法只是应该避免的混乱代码。试想一下,如果你忘了检查其中一个文件。调试可能是一场噩梦。
如果您的应用适合它,请使用自动加载。这是快速,最方便,最干净的方式。
答案 1 :(得分:2)
我希望include_once比在include文件中使用header guard更快,因为你仍然需要在后者中打开并加载文件。
答案 2 :(得分:1)
您可以使用计时器尝试10,000次,但我认为定义MY_INIT_PHP的速度要快得多。
说实话,这可能是一个很小的差异,除非你在Facebook这样的网站工作,否则没有实际需要照顾。
答案 3 :(得分:0)
如果脚本内容是唯一的,我总是使用REQUIRE_ONCE。