PHP中,通过&改变变量的值,效率如何

在PHP中,通过&改变变量的值,效率如何呢,下面来测试一下。

$arr = ['id' => null, 'name' => 'test', 'age' => null];

$time1 = microtime(true);
$tmp = &$arr;
for ($i = 0; $i < 100000000; $i++) {
$tmp['id'] = $i;
}
print_r($arr);
echo PHP_EOL;
echo microtime(true) - $time1;

echo PHP_EOL;
$time2 = microtime(true);
$tmp1 = null;
for ($i = 0; $i < 100000000; $i++) {
$tmp1 = $i;
}
$tmp['id'] = $tmp1;
print_r($arr);
echo PHP_EOL;
echo microtime(true) - $time2;

输出结果为:
Array ( [id] => 99999999 [name] => test [age] => )
2.0506858825684
Array ( [id] => 99999999 [name] => test [age] => )
1.1653530597687

不难看出,两次的处理结果是一样的,但通过&多次改变值,效率较低。


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
赏

留言

想法、疑问或勘误,都可以写在这里。留言会公开显示。

正在准备留言区…

 上一篇
PHP中unset的一些使用 PHP中unset的一些使用
前言:在PHP开发中,经常使用到unset来释放掉给定的变量;但有时候会有些问题,本文记录下。 如果需要去掉数组中的某些key,直接unset即可 也可以去掉二位数组中指定的key 下面试下去掉一维数组中的空值 上面的代码没有达到预期的效果
2022-06-02
下一篇 
php中,this、self、static的区别 php中,this、self、static的区别
$this 指向当前对象实例,用 $this-> 访问实例成员,静态方法中不能使用。 self:: 按方法定义所在的类解析成员,并不是只能访问静态方法或属性。 static:: 使用后期静态绑定,按调用链中的被调用类解析成员;这里的 sta
2022-06-02