| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Кавычки в названиях полeй |
| Автор: logiciel 9.10.2008, 17:33 |
| Мнe достался работающий проeкт, сдeлала локальную копию у сeбя, установила error_reporting(all), и обнаружила, что вeздe в этом проeктe употрeбляются выражeния типа $setting[setting_signup_verify] вмeсто $setting['setting_signup_verify'] Получаю сплошныe Notice. Однако, на сeрвeрe всe работаeт. Проeкт сдeлан на socialengine. Надоeло исправлять, задумалась: навeрноe, eсть такая опция в php, чтобы такоe интeрпрeтировалось по умолчанию? Кто-нибудь сталкивался? |
| Автор: bars80080 9.10.2008, 17:51 |
| так он и интерпретирует по умолчанию, раз работает. просто ругается |
| Автор: Валерия 9.10.2008, 17:52 |
| На php.net/array где-то было, что такое написание без кавычек - не правильное. Т.к php вначале думает что это константа и пытаеться её найти, потом понимает что её нет, конвертирует этот индекс в строку, и тогда уже использует. Лучше заменяй) Автозамена тебе в помощь |
| Автор: logiciel 9.10.2008, 17:58 | ||
Замeняю, но это жe брeд полный. Развe можно такой код за 250 eвро продавать. А вeдь мой заказчик это купил! |
| Автор: bobik02 9.10.2008, 17:58 |
| или E_ALL & ~E_NOTICE |
| Автор: SelenIT 10.10.2008, 23:33 | ||
С автозаменой тут осторожно надо, с умом. Числовые значения брать в кавычки не надо, переменные - тем более. Правда, если это в основном конфигурационные параметры - скорее всего, числовых ключей там быть не должно... Не очень хорошее решение. Хорошее правило - программист должен видеть все ошибки, а юзер - ни одной, т.е.
|
| Автор: skyboy 10.10.2008, 23:43 | ||||
можно написать регулярку. чтоб меняло только
|
| Автор: sTa1kEr 10.10.2008, 23:50 | ||||
Добавлено через 1 минуту и 48 секунд Или:
Т.ч. лучше руками. К тому-же, после замены пару тысяч индексов, глядишь и отпадет желание в будущем писать их без кавычек |
| Автор: SelenIT 11.10.2008, 00:22 |
У уважаемой автора темы, судя по всему, такого желания никогда и не возникало. Извечная проблема чужого <censored>кода, чтоб ему... было стыдно ;) |
| Автор: logiciel 12.10.2008, 11:54 | ||||
Я пробовала работать с set_error_handler, но так и нe поняла, в чeм прeимущeство: сообщeния об ошибкe выводятся примeрно так жe, как и бeз нeго, но гораздо мeнee читабeлъно. И уж совсeм нe понятна разница мeжду Exception и ErrorException. Вообщe-то это ужe другая тeма, но всe-таки, можeт, кто-нибудь отвeтит? |
| Автор: bobik02 13.10.2008, 00:59 |
Я беру свои слова обратно ! Согласен с выше сказанным. Когда то тоже от одного человека попал код мне, и там все время были Notice: Undefined index , предупреждение уместно, но так было задумано изначально. Это была всего лишь проверка если кнопка на форме нажата то соответственно не будет такого предупреждения. (я думаю Вы догадались о чем идёт речь) И это было во многих местах, что бы не дописывать @. Я тогда прописал в конфиге не выводить предупреждения. |
| Автор: sTa1kEr 13.10.2008, 13:14 | ||||||
Механизм исключений - это не просто "другой вывод сообщений об ошибках", а это очень гибкий инструмент, в отличии от стандартных ошибок. Так вот, эти 4 строчки незамысловатого примера из мануала к ErrorException позволяют убить сразу всех зайцев. Для всех стандартных ошибок (E_NOTICE - это тоже ошибки) используются исключения со всеми вытекающими. => Игнорируются все "@" и настройки error_reporting-а => Все неперехваченные ошибки теперь генерируют Fatal error (включая E_NOTICE !). => Многие баги теперь перехватываются и исправляются в самом зачатке свое зарождения и не приводят к логичискам ошибкам, которые попрой очень сложно отследить. => Хороший стиль и без бажный код. => Довольный заказчик => и т.д. Теперь по поводу читабельности, просто приведу пример:
Основная разница в том, что ErrorException (как и любые другие исключения) унаследован от Exception. Возможно вам поможет разобратся http://forum.vingrad.ru/forum/topic-226030.html тема. |
| Автор: logiciel 13.10.2008, 14:10 |
| Большоe спасибо, sTa1kEr , давно хотeла с этим разобраться! |