substr($str, $n, 1)と$str[$n]のベンチマーク
AgaviDependencyManager::checkDependenciesをみてたらsubstr($token, 0, 1)とかしてたので、念のためベンチマークとってみた。
環境はPHP5.2.2
[senna@vine senna]$ time php -r '$str="aaaaa"; for($i=0; $i < 1000000; $i++){ substr($str, 0, 1) == "a";}' real 0m3.345s user 0m3.320s sys 0m0.020s [senna@vine senna]$ time php -r '$str="aaaaa"; for($i=0; $i < 1000000; $i++){ $str[0] == "a";}' real 0m2.012s user 0m1.990s sys 0m0.020s [senna@vine senna]$ time php -r '$str="aaaaa"; for($i=0; $i < 1000000; $i++){ $str[0];}' real 0m0.853s user 0m0.850s sys 0m0.010s [senna@vine senna]$ time php -r '$str="aaaaa"; for($i=0; $i < 1000000; $i++){ substr($str, 0, 1);}' real 0m2.585s user 0m2.570s sys 0m0.010s