2014-12-05 97 views
1

我正在处理无限循环(守护进程)。其中包括每次迭代使用相同的脚本,脚本包含在require函数中。 我有一个问题,每次迭代都会放大脚本,每次使用后如何删除包含的脚本?如何在PHP中使用后删除包含在require中的脚本?

+1

您可能内存不足。将'require'移到循环外部,然后将这些包含变成一个函数或类,以便它可以在循环中重复使用。 – sjagr 2014-12-05 17:05:38

+0

你正在使用'require_once()',这样你只包含它1次? – scunliffe 2014-12-05 17:06:06

+0

如果进程数量增加,则可能会发生缓冲区溢出。每个进程都有32 MB的限制。 – 2014-12-05 19:08:38

回答

0

我不认为这是可能的,一旦包括/需要删除。

我只能想到一个解决方案,那就是将整个脚本封装在一个类中(首选,如果它有很多步骤)或函数。一旦包含脚本,您可以反复使用相同的类/函数。

希望它有帮助。

+0

感谢您的回答。 – 2014-12-05 19:11:58

+0

我认为这是一个可行的解决方案。如果函数调用以这种方式执行$ response = set_value($ param); unset($ response); ....我可以释放函数使用的内存吗? – 2014-12-05 19:19:27

+0

这取决于。如果函数句柄的数据被处理,然后再次存储,您可以。但是如果你在下一个过程中需要先前的数据,你不能。如果第一个是这种情况,那么你可以覆盖以前使用的变量,如果你想确定的话,可以使用'unset()'。 – AnotherGuy 2014-12-05 21:18:33