Это не «случайность», поскольку UTF-8 кодирует все символы после U + 007F в виде нескольких байтов в диапазоне 0x80-0xFF.

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

 $Schüssel = new Müsli(T_FRÜCHTE);

Но PHP позволяет больше, чем просто\p{L} для идентификаторов. Вы можете использовать практически любой символ Unicode, кроме символов из диапазона ASCII (например,: особенный или\ поскольку это уже используется в качестве внутреннего хака для поддержки пространств имен.)
Во всяком случае, вымог сделайте это, и я бы даже подумал, что работоспособное использование для веселых проектов:

 throw new ಠ_ಠ("told you about the disk space before");

Но кроме локализации, развлечений и декоративных эффектов, какие варианты использования Unicode-идентификаторов целесообразны?

Например, я размышляю об этом для встраивания параметров в имена магических методов. В моем случае мне нужно только ввести числовые параметры, так что сойдет только подчеркивание:

 $what->substr_0_50->ascii("text");
  // (Let's skip the evilness discussion this time. Not quite sure
  // yet if I really want it, but the conciseness might make sense.)

Но если бы я хотел вставить другие текстовые параметры, мне потребовался бы другой символ Юникода. Теперь это сложнее напечатать, но есть ли такой, который поможет читабельности и передать смысл ...?

 ->substr✉0✉50->   // doesn't look good

Итак, вопрос в этом случае: какой символ имеет смысл в качестве разделителя для смешанных параметров в имени виртуальной функции. - Более широкая мета-тема: о каких применениях Unicode-идентификаторов вы знаете, или вы считаете, что все в порядке?

Ответы на вопрос(2)

Ваш ответ на вопрос