php - 取消设置变量有什么好处?

n00*_*00b 28 php

可能重复:
使用PHP释放内存有什么好处:unset()或$ var = null

在PHP中取消设置变量是否有真正的好处?

class test {

  public function m1($a, $b)
    $c = $a + $b;
    unset($a, $b);
    return $c;
  }
}
Run Code Online (Sandbox Code Playgroud)

在运行时期间,未设置的变量实际上是否会降低内存消耗,这是真的吗?

Aro*_*eel 37

在运行时期间,未设置的变量实际上是否会降低内存消耗,这是真的吗?

是的.来自PHP.net:

unset()正如它的名字所说 - 取消设置一个变量.它不会强制立即释放内存.PHP的垃圾收集器会在看到拟合时执行它 - 尽快意图,因为无论如何都不需要那些CPU周期,或者在脚本耗尽内存之前,无论先发生什么.

如果你正在做$ whatever = null; 那么你正在重写变量的数据.您可能会更快地释放/缩小内存,但它可能会更快地从真正需要它们的代码中窃取CPU周期,从而导致更长的总体执行时间.

关于你的另一个问题:

除了例如破坏会话变量或范围界定之外,还有什么理由可以解除变量吗?

不是真的,你几乎总结了它.


Mar*_*c B 5

PHP将使用垃圾收集器自行清理内存,它通常做得非常好.取消设置将简单地明确表示您已完成该特定变量.