(PHP 7, PHP 8)
IntlChar::getPropertyValueName — Получает значения свойства Юникода
$property, int $value, int $type = IntlChar::LONG_PROPERTY_NAME): string|falseМетод возвращает значение свойства Юникода, как значение указали в файле базы данных Юникода — PropertyValueAliases.txt.
Замечание:
Отдельные названия значений свойств из файла PropertyValueAliases.txt извлекаются только через флаг
IntlChar::PROPERTY_GENERAL_CATEGORY_MASK, а неIntlChar::PROPERTY_GENERAL_CATEGORY. К таким значениям относятся следующие категории символов (список приводит короткое и длинное название категории, а также сокращённое описание):
- "C" / "Other" — прочие символы (управлящие, форматирования, суррогаты, частные и зарезервированные неназначенные кодовые точки и несимвольные коды)
- "L" / "Letter" — буквы
- "LC" / "Cased_Letter" — категория регистровых букв, которая объединяет категории: заглавных букв — Lu, строчных букв — Ll и категорию букв титульного регистра — Lt, в которую входят диграфы — символы, которые состоят из двух букв, которые закодировали как один символ, первый из которых — заглавный, например U+01F2 LATIN CAPITAL LETTER D WITH SMALL LETTER Z
- "M" / "Mark" — метки
- "N" / "Number" — числа
- "P" / "Punctuation" — символы пунктуации
- "S" / "Symbol" — символы (математические, валют, диакритические и прочие)
- "Z" / "Separator" — символы-разделители
propertyСвойство Юникода
для поиска (см. константы семейства IntlChar::PROPERTY_*).
Метод вернёт false, если свойство выходит за пределы допустимого диапазона
или метод не работает с заданным значением.
value
Селектор для значения свойства. Метод вернёт false, если значение выходит за пределы допустимого диапазона.
Как правило, допустимый диапазон значений лежит в пределах от 0 до некоторого максимума.
Отдельные значения составляют ряд исключений:
IntlChar::PROPERTY_BLOCK начинаются с ненулевого значения
IntlChar::BLOCK_CODE_BASIC_LATIN
IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS не непрерывны
и лежат в диапазоне 0..240.
type
Селектор, который определяет, какое имя требуется получить.
Метод вернёт false для селекторов вне допустимого диапазона.
Длинное имя есть у каждого значения. У большей части значений есть короткие имена, но не у каждого.
Юникод разрешает дополнительные имена; если значению присвоили короткое название,
метод вернёт значение IntlChar::LONG_PROPERTY_NAME с добавлением 1, 2 и т. д.
Метод возвращает имя или false, если значение свойства property
или типа имени type выходит за рамки допустимого диапазона.
Метод возвращает null, если возникла ошибка.
Если тип названия type возвращает false, все бо́льшие значения
типа названия type также вернут false, с одним исключением: если
для IntlChar::SHORT_PROPERTY_NAME вернётся false,
то IntlChar::LONG_PROPERTY_NAME и выше всё ещё смогут вернуть значения,
которые будут отличаться от false.
Пример #1 Тестирование различных свойств
<?php
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::SHORT_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME + 1));
?>Результат выполнения приведённого примера:
string(16) "Greek_And_Coptic" string(5) "Greek" string(16) "Greek_And_Coptic" bool(false)