我在flie index.class.php
创建了以下课程: -
<?php
class index{
public function loadTitle() {
$title = "Welcome to My Website";
return $title;
}
}
?>
现在,我在我的index.php
文件中使用它,如下所示
<?php
require_once("index.class.php");
$obj = new index();
echo $obj->loadTitle();
?>
我的问题是因为页面会变得很多,文章和图片很多,我每天都会想到1500-2500用户。
我是否还需要取消设置内存,我知道PHP有自己的垃圾收集器,但是关注URL会吓到我: - www.google.com/search?q=php+memory+leak+with+new
我在StackOverflow中看到一些问题,说它确实消耗了内存,某些人建议使用unset
函数,但我不知道该怎么做..
这是我的尝试:
我是否只需要拨打
<?php
unset($obj); // At the end of the page, or where i will no more be using this object.
?>
或者我也必须设置NULL值。
<?php
$obj = NULL;
unset($obj);
?>
以上代码是否适合释放内存,或者我是否还需要做其他事情?请建议并教我!
答案 0 :(得分:3)
PHP具有自动垃圾回收功能。每次重新分配$obj
时,如果旧值不再可访问,则将回收其内存。所以你只会引用一个对象,而不是你创建的所有对象,除非你将它们存储在某个地方。
答案 1 :(得分:1)
首先,您不需要一直取消设置变量。我看到人们在他们的PhP脚本末尾取消了所有变量,这是没用的。
你想要取消设置变量的唯一时间是你在PhP中遇到内存问题,你可以销毁你不会在脚本中的任何其他地方使用的变量,但你还有很多事情要做(考虑时间或记忆)。
您可能还想看看:
答案 2 :(得分:1)
您应该查看PHP的垃圾收集器。如果你愿意,你甚至可以强迫PHP收集垃圾:
<?php
gc_enable(); // Enable Garbage Collector
var_dump(gc_enabled()); // true
var_dump(gc_collect_cycles()); // # of elements cleaned up
gc_disable(); // Disable Garbage Collector
?>