我没有更好的为什么要重新解释这个问题,你可能会建议我一个。大多数时候我在php中重新使用一个变量,我想知道哪一个将是内存/处理器效率。例如
案例A
$string_var ='1,2,4,5,6,7,8';
$array_var =explode(',',$string_var);
案例B :重复使用相同的变量(字符串变量并重新声明为数组对象)
$array_var ='1,2,4,5,6,7,8';
$array_var =explode(',',$array_var);
我的问题不是从代码可读性的角度来看。我想知道哪一个在内存和处理器利用方面都是有效的方式。
答案 0 :(得分:2)
$string_var ='1,2,4,5,6,7,8';
$array_var =explode(',',$string_var);
这将使用更多内存将字符串和数组保留在内存中。如果您覆盖原始变量,则先前存储的内容将在某个时刻被垃圾收集,从而释放内存。在实践中,它可能没有任何实际的区别,因为这些值不会立即被垃圾收集,如果你的变量是合理的范围,它们应该很快就会超出范围。
处理时间几乎没有差别。
在逻辑上更有意义。如果您不再需要$string_var
,则无需将其作为单独的变量保留。尝试尽可能地整理你的命名空间。
答案 1 :(得分:1)
每次创建新变量时,都会为该变量分配一些内存。因此,2个变量将占用大约两倍的内存。最好使用相同的变量 Case B ,因为它只使用1变量所需的内存。
答案 2 :(得分:0)
它们都会以相同的方式影响处理器。但是,案例B 中的内存使用量会降低,因为您要将现有变量更新为新阵列。
答案 3 :(得分:0)
如果这不是PHP,而是像C这样的“低级”语言,答案很简单:
PHP是一种脚本语言,从长远来看,我所能说的B可能只是略微更加保守,但数量确实微不足道。除此之外,所有赌注都已关闭,写下基准。