slumbers

思いついたことをつらつらと

 include や require では絶対パスで指定する。


[追記]2013/01/25
今更以下の情報はさすがに古いです・・・
昔はこういうことがあったんだよと下の世代へお伝え下さい・・・。


よく言われる、「PHPの最適化 12 PHP Optimization tips」が本当か、今更ながら検証してみます。
環境は
 第4弾は「include や require では絶対パスで指定する。」
そんなに違いはあるもんなの??

前回使用した a.php をまた読み込んで使いたいと思います。
ちなみに ../require/a.php としています。
class_exists('TimeRecorder') || require '../../TimeRecorder.php';

$recorder = new TimeRecorder(array(
'absolute', 'nonabsolute'
));
$fileName = 'a.php';
$limit = 10000;

// 相対
$recorder->rec('nonabsolute');
for ($i = 0; $i < $limit; $i++) {
require '../require/' . $fileName;
}
$recorder->rec('nonabsolute');

// 絶対
$recorder->rec('absolute');
for ($i = 0; $i < $limit; $i++) {
require '/var/www/optimization/require/' . $fileName;
}
$recorder->rec('absolute');

$recorder->display();

結果
array(2) {
["absolute"]=>
float(13.2543940544)
["nonabsolute"]=>
float(7.41281294823)
}

ん?????
相対パスの方がはやい。。。。