测评步骤如下:
1.for前声明变量,然后unset
2.for前声明变量,然后=null
3.for前声明变量,然后=''
4.不提前声明变量,然后unset
5.不提前声明变量,然后=null
6.不提前声明变量,然后=''
//10次取平均数
代码如下:
<?php
$t1 = microtime(true);
$a = '';
for($b = 0;$b<=10000;$b++){
$a = $b;
echo $a;
unset($a);
//$a = null;
//$a = '';
}
$t2 = microtime(true);
echo '耗时'.round($t2-$t1,11).'秒<br>';
echo '内存消耗(bye): ' . memory_get_usage() . '<br />';
测试结果:
1.耗时0.0020699501秒
内存消耗(bye): 119000
2.耗时0.00180912018秒
内存消耗(bye): 119104
3.耗时0.00186300278秒
内存消耗(bye): 119104
4.耗时0.00210499763秒
内存消耗(bye): 118944
5.耗时0.00181102753秒
内存消耗(bye): 119048
6.耗时0.00185704231秒
内存消耗(bye): 119048
总结:在内存方面,unset优于null和='';在执行效率上来看的话null>=''>unset;
在内存方面,提前定义比不提前占用更多资源;在执行效率上来看的话 提前定义比不提前定义快10%-20%左右
建议:如果是大型项目的话,建议提前定义,并且使用unset