先看代码
$str = 'hello';
$time1 = microtime(true);
for($i=0;$i<50000000;$i++){
$a = $str[3];
}
$time2 = microtime(true);
for($i=0;$i<50000000;$i++){
$b = $str{3};
}
$time3 = microtime(true);
var_dump($time1,$time2,$time3);
var_dump($time2-$time1,$time3-$time2);
exit;
----------------运行结果----------------------------------------------
float 1574855776.209
float 1574855786.8729
float 1574855797.2813
float 10.663937091827
float 10.408400058746
----------------测试结论----------------------------------------------
PHP中,把字符串当数组直接通过括号(花括号{} vs 中括号[])取值 性能很接近。
在循环5千万次的情况下,$str{3} 略胜 $str[3]。