Как стать автором
Обновить

Кириллица в именах переменных и функций

Время на прочтение2 мин
Количество просмотров14K
Здравствуй, сообщество.

Вероятно, то, что я сейчас напишу, кому-то было известно, но буквально недавно с этим столкнулись впервые.

Я сейчас тут код приложу, в принципе, там всё понятно. У меня и моих бывших коллег вчера был культурный шок. Сегодня немного набросал тестового кода, для проверки.
Работает в кодировках cp1251 и в UTF, проверяли на версиях php 4.4.7, 5.2.9, 5.2.10–2ubuntu6.4

Вообщем, вы посмотрите на это и выскажите своё мнение.

  1. //ну поехали!
  2. define('ТРУЪ',true);
  3. echo ТРУЪ;
  4. //адаптируем немного
  5. define('ВЕРНО',true);
  6. define('БРЕХНЯ',false);
  7. $на_улице = "тепло";
  8. $градусник_показывает = ВЕРНО;
  9. $чо_делать = "пока ничо";
  10. if ($градусник_показывает && $на_улице == "тепло" ) {
  11. $чо_делать = "можно выходить";
  12. } else {
  13. $чо_делать = "сидеть дома";
  14. }
  15. echo "Сегодня " . $на_улице. ", поэтому " . $чо_делать;
  16. //теперь кириллические ключи
  17. $_COOKIES['сгущенка'] = "1кг";
  18. $_COOKIES['шоколад'] = "2кг";
  19. $_COOKIES['крекер'] = "3кг";
  20. $_ПЕЧЕНЬКИ = $_COOKIES;
  21. //та-акс.. Проверим печеньки
  22. echo "<pre>";
  23. print_r($_ПЕЧЕНЬКИ);
  24. echo "</pre>";
  25. //так работает
  26. function мегафункция(){
  27. $переменная2 = "это мегакруто :)";
  28. return $переменная2;
  29. }
  30. function мегафункция2($переменная){
  31. $переменная2 = "<br>Да, это ". $переменная . ", хотя и бесполезно";
  32. return $переменная2;
  33. }
  34. $переменная = "Кириллица в названиях переменных<br>";
  35. echo $переменная;
  36. echo $переменная2 = мегафункция();
  37. echo мегафункция2($переменная2);

У меня весь код работает

Польза


Если честно, сразу идей для практического применения кириллицы в коде не нашлось. Ну разве что писать какие-то смешные конструкции и выкладывать в code_wtf. Давайте обсудим перспективы использования этого.

Вред


Собственно, с вреда всё и началось, когда в имя переменной закралась русская с. Если не пользоваться подсветкой синтаксиса и проверки орфографии в коде «на лету» — то можно потратить много времени на поиск ошибки.
Также, не очень приятно будет нерусскоязычным кодерам, которым придётся сопровождать проект. Хотя, то что они иногда оставляют нам… Ну да ладно, пост не об этом.

Выводы


Может «Даешь наш код!», а? или ну его?
Будьте бдительны, одним словом.

Благодарность за основное исследование и находку — Vick Mellon

P.S.> MySQL и Oracle, кстати, позволяют создавать таблица и поля с русскими именами 
Теги:
Хабы:
Всего голосов 125: ↑79 и ↓46+33
Комментарии101

Публикации

Истории

Работа

PHP программист
126 вакансий

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область