Pull to refresh

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

Reading time2 min
Views14K
Здравствуй, сообщество.

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

Я сейчас тут код приложу, в принципе, там всё понятно. У меня и моих бывших коллег вчера был культурный шок. Сегодня немного набросал тестового кода, для проверки.
Работает в кодировках 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, кстати, позволяют создавать таблица и поля с русскими именами 
Tags:
Hubs:
Total votes 125: ↑79 and ↓46+33
Comments101

Articles