PHP. Как отключить русские буквы в названии переменных?
Добрый день. Как сделать, чтобы php ругался на некорректное имя переменной:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .php.geshi_code {font-family:monospace;} .php.geshi_code .imp {font-weight: bold; color: red;} .php.geshi_code .kw1 {color: #b1b100;} .php.geshi_code .kw2 {color: #000000; font-weight: bold;} .php.geshi_code .kw3 {color: #990000;} .php.geshi_code .co1 {color: #666666; font-style: italic;} .php.geshi_code .co2 {color: #666666; font-style: italic;} .php.geshi_code .co3 {color: #0000cc; font-style: italic;} .php.geshi_code .co4 {color: #009933; font-style: italic;} .php.geshi_code .coMULTI {color: #666666; font-style: italic;} .php.geshi_code .es0 {color: #000099; font-weight: bold;} .php.geshi_code .es1 {color: #000099; font-weight: bold;} .php.geshi_code .es2 {color: #660099; font-weight: bold;} .php.geshi_code .es3 {color: #660099; font-weight: bold;} .php.geshi_code .es4 {color: #006699; font-weight: bold;} .php.geshi_code .es5 {color: #006699; font-weight: bold; font-style: italic;} .php.geshi_code .es6 {color: #009933; font-weight: bold;} .php.geshi_code .es_h {color: #000099; font-weight: bold;} .php.geshi_code .br0 {color: #009900;} .php.geshi_code .sy0 {color: #339933;} .php.geshi_code .sy1 {color: #000000; font-weight: bold;} .php.geshi_code .st0 {color: #0000ff;} .php.geshi_code .st_h {color: #0000ff;} .php.geshi_code .nu0 {color: #cc66cc;} .php.geshi_code .nu8 {color: #208080;} .php.geshi_code .nu12 {color: #208080;} .php.geshi_code .nu19 {color:#800080;} .php.geshi_code .me1 {color: #004000;} .php.geshi_code .me2 {color: #004000;} .php.geshi_code .re0 {color: #000088;} .php.geshi_code span.xtra { display:block; }
Предыстория вопроса:
Провел вчерашний день в веселой отладке. На тестовой среде все работает, на продуктиве падает и отладка на продуктиве, естественно, невозможна. После долгих поисков обнаружил, что в названии класса "Contract" первая буква на самом деле русская "С". Так как я имею дурную привычку копипастить названия переменных и классов, то с такой же опечаткой этот класс и вызывался. После исправления опечатки все заработало и на продуктиве, но разобраться в чем различаются среды все-равно надо.
Обе среды имеют одинаковую ОС - Solaris10, одинаковую локаль, в php указан одинаковый encoding, настройки php.ini тоже принципиально не различаются. Буду рад подсказкам, что еще посмотреть.
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .php.geshi_code {font-family:monospace;} .php.geshi_code .imp {font-weight: bold; color: red;} .php.geshi_code .kw1 {color: #b1b100;} .php.geshi_code .kw2 {color: #000000; font-weight: bold;} .php.geshi_code .kw3 {color: #990000;} .php.geshi_code .co1 {color: #666666; font-style: italic;} .php.geshi_code .co2 {color: #666666; font-style: italic;} .php.geshi_code .co3 {color: #0000cc; font-style: italic;} .php.geshi_code .co4 {color: #009933; font-style: italic;} .php.geshi_code .coMULTI {color: #666666; font-style: italic;} .php.geshi_code .es0 {color: #000099; font-weight: bold;} .php.geshi_code .es1 {color: #000099; font-weight: bold;} .php.geshi_code .es2 {color: #660099; font-weight: bold;} .php.geshi_code .es3 {color: #660099; font-weight: bold;} .php.geshi_code .es4 {color: #006699; font-weight: bold;} .php.geshi_code .es5 {color: #006699; font-weight: bold; font-style: italic;} .php.geshi_code .es6 {color: #009933; font-weight: bold;} .php.geshi_code .es_h {color: #000099; font-weight: bold;} .php.geshi_code .br0 {color: #009900;} .php.geshi_code .sy0 {color: #339933;} .php.geshi_code .sy1 {color: #000000; font-weight: bold;} .php.geshi_code .st0 {color: #0000ff;} .php.geshi_code .st_h {color: #0000ff;} .php.geshi_code .nu0 {color: #cc66cc;} .php.geshi_code .nu8 {color: #208080;} .php.geshi_code .nu12 {color: #208080;} .php.geshi_code .nu19 {color:#800080;} .php.geshi_code .me1 {color: #004000;} .php.geshi_code .me2 {color: #004000;} .php.geshi_code .re0 {color: #000088;} .php.geshi_code span.xtra { display:block; }
Предыстория вопроса:
Провел вчерашний день в веселой отладке. На тестовой среде все работает, на продуктиве падает и отладка на продуктиве, естественно, невозможна. После долгих поисков обнаружил, что в названии класса "Contract" первая буква на самом деле русская "С". Так как я имею дурную привычку копипастить названия переменных и классов, то с такой же опечаткой этот класс и вызывался. После исправления опечатки все заработало и на продуктиве, но разобраться в чем различаются среды все-равно надо.
Обе среды имеют одинаковую ОС - Solaris10, одинаковую локаль, в php указан одинаковый encoding, настройки php.ini тоже принципиально не различаются. Буду рад подсказкам, что еще посмотреть.
1 ответов
> на продуктиве падает и отладка на продуктиве, естественно, невозможна.
Значит так хуево у вас настроен продакшн. Отладка возможна и очень даже легко.
Класс не найден это ошибка типа fatal, она должна попадать в лог (см. php.ini error_log)
Запретить, скорее всего, нельзя (за исключением случая если вы собрались собрать свой php), для переменных и функций можно использовать любые ASCII символы, символы из кириллицы таковыми являются.