我已经读过,当包含一个php文件时,使用绝对路径的处理时间比相对路径快.
你建议使用什么?
include("includes/myscript.php");
Run Code Online (Sandbox Code Playgroud)
要么
include("/home/ftpuser/public_html/includes/myscript.php");
Run Code Online (Sandbox Code Playgroud)
甚至
set_include_path("/home/ftpuser/public_html/includes");
include("myscript.php");
Run Code Online (Sandbox Code Playgroud)
还是我真的不应该担心的事情?
Gre*_*reg 16
我通常手动或像这样设置一个常量:
define('ROOT', dirname(__FILE__));
Run Code Online (Sandbox Code Playgroud)
然后做
require ROOT . '/include/file.php';
Run Code Online (Sandbox Code Playgroud)
对于99%的案例,这是最好的方法:
include(dirname(__FILE__)."/includes/myscript.php");
Run Code Online (Sandbox Code Playgroud)
这最终成为一条绝对路径,这意味着它将被忽略include_path,这是我体验中大量包含相关错误的已知来源......
虽然表现明智,但我怀疑绝对路径和相对路径之间存在很大差异.这是一种微观优化,从长远来看,这意味着什么.include_path除非您添加更多内容,否则通常只有2-3件事情.两个常见的罪魁祸首是安装./到何处的路径pear.
我用了一个简单的速度测试脚本microtime(true).它测试以下五个包括具有一百万次迭代的方法:
// Absolute path.
include('/home/ftpuser/public_html/includes/myscript.php');
// Predefined path.
define('PATH', '/home/ftpuser/public_html/includes/');
include(PATH . 'myscript.php');
// Relative path.
include('myscript.php');
// Using set_include_path().
set_include_path('/home/ftpuser/public_html/includes/');
include('myscript.php');
// Superglobal path.
include(dirname(__FILE__) . '/myscript.php');
Run Code Online (Sandbox Code Playgroud)
其中给出了以下结果(以秒为单位):
Absolute path: 263.222
Predefined path: 263.545
Relative path: 301.214
Using set_include_path(): 302.396
Superglobal path: 269.631
我基于这些结果的观点是使用预定义的路径,因为它是绝对路径超过的最快路径.但是,绝对路径的缺点是,当需要进行更改时,必须在每个文件中对其进行更改.
希望这有帮助.:)
PS
define并且set_include_path()在脚本执行期间仅使用一次(它们位于循环外部).
| 归档时间: |
|
| 查看次数: |
11857 次 |
| 最近记录: |