考慮下列情形..函數結束時是否清除本地函數變量的內存?
$var = 'Lots of information';
function go($var) {
// Do stuff
}
現在,當PHP退出功能,不明確的函數內的自動所有局部變量的內存或者我應該做:
unset($var);
。 ..在任何存儲大量數據的局部變量上的函數?
考慮下列情形..函數結束時是否清除本地函數變量的內存?
$var = 'Lots of information';
function go($var) {
// Do stuff
}
現在,當PHP退出功能,不明確的函數內的自動所有局部變量的內存或者我應該做:
unset($var);
。 ..在任何存儲大量數據的局部變量上的函數?
它將在函數範圍內自行清除。這意味着該函數的$var
參數在函數調用後將不再存在。 請注意,$var = 'Lots of information';
位於功能塊之外,因此不會自動清除。在這種情況下,全局範圍內的$var
和功能範圍內的$var
是兩個不同的東西,而功能塊裏面只有$var
的函數範圍將存在。
這個問題涉及變量範圍的概念。在函數內部,變量是「包含」的,除非聲明爲全局變量,否則與函數外的同名變量無關。所以如果你在一個函數內部創建了一個大的變量,並且你想取消它的設置,你需要在函數內部取消設置()。這個頁面很重要,尤其是關於「全局」和「靜態」變量的部分。 PHP還有一種方法可以通過在變量名稱前使用&符號來引用變量。在這種情況下,函數在變量本身上運行,而不是函數的變量副本。 http://php.net/manual/en/language.variables.scope.php
是的......我知道他們是不同的,這就是爲什麼我想確保本地函數被清除,因爲它在函數結束後變得無用。想要保持正常的。 – Brett
@Brett,它會的。 – Shoe