php - PHP 中内存清理的最佳方法是什么? (5.2)

标签 php memory-leaks unset

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

$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/

相关文章:

php - 如何根据函数php的值自动生成number_format?

php - 使用 Guzzle6 形成帖子以获取 Azure token 时遇到问题(错误 : AADSTS90014)

memory-leaks - ie11内存快照创建失败,出现 'out of memory'错误

java - 我如何确保此方法关闭输出流?

javascript - 切换路由时 VueJS 内存泄漏

c# - 当 UnsetValue 中有一个转换值时,使用 convertback 的多重绑定(bind)不起作用

php - 单击时从 session 数组中取消设置某些项目?

php - preg_replace 删除所有以 http ://and ending with a space 开头的单词

PHP通过值删除数组索引

php - 从sqlite db加载图像并显示