包含在循环中

时间:2013-04-03 17:48:32

标签: php loops include

我有一个函数,它读取存储在外部文件中的值,如此

function MyFunction($param) {
include ($MyInclude);
...do the job
}

我正在为循环的每个实例调用此函数

foreach ($fileArray as $param => $processed) {
MyFunction($param);
...rest of the job
}

我是否重载服务器内存,或者只加载一次文件并从缓存中读取?我需要解决这个问题吗?我问,因为“$ fileArray”会随着时间的推移而增长,处理越来越多的文件。

3 个答案:

答案 0 :(得分:1)

每次都会包含它,如果你有定义会导致错误(因为它会尝试重新定义某些东西)。请尝试使用include_once或重构您的函数,以便在每次迭代时都不需要include(我会说这更好)。

答案 1 :(得分:1)

include将始终“复制”这些文件的内容,就像在那里输入一样。如果这些文件中的定义甚至可能导致错误。

如果你在该文件中只有一些变量文字,那么它可能不会创建错误,但内存使用量取决于你对它们的处理方式。如果你只是包含在函数内部并且不返回任何函数或将它们复制到其他外部变量等,那么当函数返回时它们将被垃圾收集。

答案 2 :(得分:0)

我认为在函数中包含文件不是一个好主意,特别是多次。如果需要这样做,可以使用require_once而不是include。

但是我建议你在功能之外加一次。然后使用你需要的任何变量作为全局变量。

相关问题