我有两个简单的问题。什么对内存清理更好/有用。

$var = null;

要么
unset($var);

我有一个功能和一个周期。我得到(几分钟后)
Fatal error: Allowed memory size of 419430400 bytes exhausted

我正在设置 null 和 unset()-ing 每个对象(在循环结束时),但仍然没有任何成功:( 我无法找出消耗内存的内容。

那么循环中的函数调用呢? PHP 会释放这些函数中的所有分配吗?(调用后)

最佳答案

PHP 本身有时会混淆这两个概念,但一般来说,设置为 NULL 的变量与不存在的变量不同:

<?php

$foo = 'One';
$bar = 'Two';

$foo = NULL;
unset($bar);

var_dump($foo); // NULL
var_dump($bar); // Notice: Undefined variable: bar
var_dump(get_defined_vars()); // Only foo shows up: ["foo"]=> NULL

?>

关于php - PHP 内存清理的最佳方法是什么? (5.2),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3413072/

10-13 08:11
查看更多