(PHP 7, PHP 8)
IntlChar::getPropertyValueEnum — Получает значение свойства по имени значения
Метод возвращает целочисленное значение свойства Юникода по имени значения, как определяет файл базы данных Юникода — 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_*
).
Метод вернёт значение флага IntlChar::PROPERTY_INVALID_CODE
,
если свойство выходит за пределы допустимого диапазона, или если метод не работает с заданным значением.
name
Название значения свойства, которое требуется сопоставить. Имена сравниваются по принципу «свободного соответствия» (loose matching), как описывает файл базы данных Юникода — PropertyValueAliases.txt.
Метод возвращает целочисленное значение свойства, которое соответствует названию значения свойства,
или IntlChar::PROPERTY_INVALID_CODE
, если имя не совпадает ни с одним значением
свойства или если свойство недопустимо.
Пример #1 Тестирование различных свойств
<?php
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BLOCK, 'greek') === IntlChar::BLOCK_CODE_GREEK);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'RIGHT_TO_LEFT') === IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'some made-up string') === IntlChar::PROPERTY_INVALID_CODE);
var_dump(IntlChar::getPropertyValueEnum(123456789, 'RIGHT_TO_LEFT') === IntlChar::PROPERTY_INVALID_CODE);
?>
Результат выполнения приведённого примера:
bool(true) bool(true) bool(true) bool(true)