Я просто потратил часы, пытаясь отладить ошибку нехватки памяти, вызванную следующим кодом:
for ($i = 1; i <= 4; $i++) {
$allowed[] = $type.'_'.$i;
}
Какой PHP любезно искажает:
for ($i = 1; 'i' <= 4; $i++) {
$allowed[] = $type.'_'.$i;
}
Это вызывает бесконечный цикл, который в конечном итоге приводит к ошибке нехватки памяти из-за добавления в массив. PHP будет генерировать ошибку уровня уведомления, и я мог бы изменить свой уровень сообщения об ошибках, чтобы показать их, но я работаю над стороннее приложение, которое имеет тенденцию генерировать такое количество ошибок, что это не совсем жизнеспособное решение.
Есть ли способ отловить эти действительно простые ошибки? Как ни странно, если вы сделаете что-то вроде constant ('i ')
и явно запросить значение, это вызовет предупреждение, а не уведомление, и такое поведение было бы идеальным.