我们可以给常量或变量赋值。从内存和优化的角度来看,哪个更好?
define("X",5);
或者
$x = 5;
在这两种情况下,整数占用的内存是否相同?哪个更占用内存空间且运行速度更快?
我已经在命令提示符中使用php.exe分析了这个任务100,000次,并在此进行说明...
//Defining a constant Test
$DefConst_TimeStart = microtime();
$DefConst_MemStart = memory_get_usage();
for($i=1;$i<=100000;$i++){
define("x$i",$i);
}
$DefConst_MemEnd = memory_get_usage();
$DefConst_TimeEnd = microtime();
//Variable test
$Variable_TimeStart = microtime();
$Variable_MemStart = memory_get_usage();
for($i=1;$i<=100000;$i++){
${"x".$i} = $i;
}
$Variable_MemEnd = memory_get_usage();
$Variable_TimeEnd = microtime();
//Output of the results
echo "Define Constant: Time: ".($DefConst_TimeEnd - $DefConst_TimeStart)." ms | Memory: ".($DefConst_MemEnd - $DefConst_MemStart)." Bytes\n";
echo "Setting Variable: Time: ".($Variable_TimeEnd - $Variable_TimeStart)." ms | Memory: ".($Variable_MemEnd - $Variable_MemStart)." Bytes\n";
根据分析:
时间:使用变量比常量更快
内存使用:常量占用的内存比变量少
输出图片
您可以从GitHub下载文件进行测试
请告诉我我是否正确理解了