【发布时间】:2014-12-02 14:04:35
【问题描述】:
尝试自动取消设置脚本中的所有变量。
试过这种方法:
echo '<br /> Variables in Script before unset(): <br />';
print_r(array_keys(get_defined_vars()));
echo '<br /><br />';
var_dump(get_defined_vars());
// Creates string of comma-separated variables(*) for unset.
$all_vars = implode(', $', array_keys(get_defined_vars()));
echo '<br /><br />';
echo '<br />List Variables in Script: <br />';
echo $all_vars;
unset($all_vars);
echo '<br /><br />';
echo '<br />Variables in Script after unset(): <br />';
print_r(array_keys(get_defined_vars()));
echo '<br />';
var_dump(get_defined_vars());
为什么它不起作用?
有没有更好的方法来做到这一点?
感谢您的帮助!
(*) It's seems somewhat that it does not really create the variables, but a string that looks like variables...
【问题讨论】:
-
你为什么需要这样做?
-
我认为你误解了内爆函数的使用..
-
没有太多理由取消设置所有变量。 php 中的内存管理就像需要释放分配的内存的 C 或 C++。 PHP 将在脚本执行后自动释放所有使用的内存。
-
仅供大家了解:我这样做的原因是因为我们的系统编码相当糟糕,我们必须在一个“报告邮件”例程中包含()文件,我们假装我们已经通过给他们期望的 $_POST 来运行报告。由于它是一个包含,变量被填充到全局范围内,我们应该在加载另一个(不相关的)报告之前清理它们。我对此代码的其他用例感兴趣。
标签: php memory memory-management memory-leaks unset