使用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);
...
}
使用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);
...
}
"require_once"和"include_once"通常比"require"和"include"慢一点,因为它们会检查文件是否已经被加载。
但是这种差异只在真正复杂的应用程序中才有影响,而且如果您的自动加载器编写得好的话,您不需要使用require_once/include_once。
在大多数简单的应用程序中,出于方便原因,最好使用require_once/include_once。
头文件保护方法只是混乱的代码,应该避免使用。想象一下,如果你在众多文件中忘记了其中一个文件的检查。调试可能会成为一场噩梦。
如果您的应用程序适合使用它,请使用自动加载。它的速度快,而且是最方便和清洁的方式。
...defined('MY_INIT_PHP')...
也不是免费的。因此,性能问题归结为“您的php脚本解决方案是否比php内部解决方案更快”,我对绝大多数情况表示怀疑。 - VolkerK你可以用计时器尝试 1 万次,但我认为定义 MY_INIT_PHP 会更快一些。
说实话,这样的差异非常之小,除非你在为 Facebook 这样的网站工作,否则没有必要过于关注。
如果脚本内容是唯一的,我总是使用REQUIRE_ONCE。