(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)