Как заставить неопределенные константы PHP обнаруживать ошибку

Я просто потратил часы, пытаясь отладить ошибку нехватки памяти, вызванную следующим кодом:

for ($i = 1; i <= 4; $i++) {
  $allowed[] = $type.'_'.$i;
}

Какой PHP любезно искажает:

for ($i = 1; 'i' <= 4; $i++) {
  $allowed[] = $type.'_'.$i;
}

Это вызывает бесконечный цикл, который в конечном итоге приводит к ошибке нехватки памяти из-за добавления в массив. PHP будет генерировать ошибку уровня уведомления, и я мог бы изменить свой уровень сообщения об ошибках, чтобы показать их, но я работаю над стороннее приложение, которое имеет тенденцию генерировать такое количество ошибок, что это не совсем жизнеспособное решение.

Есть ли способ отловить эти действительно простые ошибки? Как ни странно, если вы сделаете что-то вроде constant ('i ') и явно запросить значение, это вызовет предупреждение, а не уведомление, и такое поведение было бы идеальным.

7
задан Matthew Scharley 6 July 2011 в 00:34
поделиться