(PHP 7, PHP 8)
IntlChar::getPropertyValueName — 取得屬性值的 Unicode 名稱
$property
, int $value
, int $type
= IntlChar::LONG_PROPERTY_NAME): string|false傳回指定屬性值的 Unicode 名稱,如 Unicode 資料庫檔案 PropertyValueAliases.txt 中所述。
備註:
PropertyValueAliases.txt 中的某些名稱只能使用
IntlChar::PROPERTY_GENERAL_CATEGORY_MASK
來擷取,而不能使用IntlChar::PROPERTY_GENERAL_CATEGORY
。這些名稱包括:
- "C" / "Other"(其他)
- "L" / "Letter"(字母)
- "LC" / "Cased_Letter"(大小寫字母)
- "M" / "Mark"(標記)
- "N" / "Number"(數字)
- "P" / "Punctuation"(標點符號)
- "S" / "Symbol"(符號)
- "Z" / "Separator"(分隔符號)
property
要查詢的 Unicode 屬性(請參閱 IntlChar::PROPERTY_*
常數)。
如果超出範圍,或者此方法不適用於給定值,則會回傳 false
。
value
給定屬性的值選擇器。如果超出範圍,則會回傳 false
。
一般來說,有效值的範圍是從 0
到某個最大值。但有幾個例外:
IntlChar::PROPERTY_BLOCK
的值從非零值 IntlChar::BLOCK_CODE_BASIC_LATIN
開始。IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS
的值並非連續的,範圍是 0..240。type
要獲取哪個名稱的選擇器。如果超出範圍,則會回傳 false
。
所有值都有一個長名稱。大多數值都有一個短名稱,但有些則沒有。Unicode 允許額外的名稱;如果存在,則可以透過在 IntlChar::LONG_PROPERTY_NAME
上加 1、2 等來回傳這些名稱。
回傳名稱,如果 property
或 type
超出範圍,則回傳 false
。失敗時回傳 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)