IntlChar::getPropertyValueName
(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
の場合、 0 でない値IntlChar::BLOCK_CODE_BASIC_LATIN
から始まります。 -
プロパティが
IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS
の場合は、連続してしない 0..240 までの値を取ります。
-
プロパティが
type
-
どの名前を取得するかを選択します。 範囲外の値の場合、
false
を返します。全ての値には長い名前 (long name) が存在します。 殆どの値には短縮名 (short name) が存在しますが、 ないものもあります。 さらに、Unicode はこれら以外の追加の名前も許容しています。つまり、 追加の名前が存在する場合、
IntlChar::LONG_PROPERTY_NAME
に追加される形で返されます。
戻り値
名前を返します。
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)