0

考虑以下情况..

$var = 'Lots of information';

function go($var) {

    // Do stuff

}

现在,当 PHP 退出函数时,它会自动清除函数内所有局部变量的内存还是我应该这样做:

unset($var);

...在存储大量数据的任何局部变量的函数内?

4

2 回答 2

2

它将在函数范围内清除自己。这意味着函数的$var参数在函数调用后将不再存在。请注意,$var = 'Lots of information';它在功能块之外,因此不会被自动清除。在这种情况下$var,全局范围内和$var函数范围内是两个不同的东西,功能块内部只有$var在函数范围内才会存在。

于 2012-12-28T14:51:13.870 回答
0

这个问题涉及变量范围的概念。在函数内部,变量是“包含”的,除非声明为全局变量,否则与函数外部的同名变量无关。因此,如果您在函数内部创建了一个大变量,并且想要 unset() 它,则需要在函数内部 unset()。这个页面很重要,尤其是关于“全局”和“静态”变量的部分。PHP 还有一种方法可以通过引用在变量名前使用与号来传递变量。在这种情况下,函数对变量本身进行操作,而不是函数的变量副本。 http://php.net/manual/en/language.variables.scope.php

于 2012-12-28T14:51:00.290 回答