【发布时间】:2011-07-05 23:34:46
【问题描述】:
我刚刚花了几个小时试图调试由以下代码引起的内存不足错误:
for ($i = 1; i <= 4; $i++) {
$allowed[] = $type.'_'.$i;
}
哪些 PHP 好心地融入:
for ($i = 1; 'i' <= 4; $i++) {
$allowed[] = $type.'_'.$i;
}
这会导致无限循环,最终由于追加到数组而导致内存不足错误。 PHP 将生成通知级别错误,我可以更改我的错误报告级别以显示这些错误,但我正在开发第三方应用程序,该应用程序倾向于生成足够多的此类错误,这并不是一个真正可行的解决方案。
有什么方法可以捕获这些非常简单的错误?具有讽刺意味的是,如果您执行constant('i') 之类的操作并明确要求该值,它将生成警告而不是通知,这种行为将是理想的。
【问题讨论】:
-
现代 IDE 应该会告诉你这样的错误
-
Matthew php 已经将该错误显示为通知:d
-
@KingCrunch 确实如此,但是当我错过某些东西时发生错误有助于实际调试它。如果我在 IDE 中遗漏了某些内容,然后尝试运行该页面并显示“哦,您在此行的此文件中做了一些愚蠢的事情”并且不尝试运行它,那么我将转到该行并归档并那我看看问题。
-
@KingCrunch 如果我正在查看其他人所做的事情并试图找出问题所在,它也对我没有任何帮助。
-
@yes123:它还显示了许多其他“错误”作为通知。这真的不应该是一个通知,它充其量只是一个警告,但至少在我看来真的应该是一个错误。