IntlChar::getPropertyValueName

プロパティの値に対応する、Unicode の名前を取得する

説明

public static stringfalse IntlChar::getPropertyValueName(int $property, int $value, int $type = IntlChar::LONG_PROPERTY_NAME)

指定されたプロパティの値に対応する、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 に追加される形で返されます。

戻り値

名前を返します。 propertytype が範囲外の場合は、 false を返します。 失敗した場合は、null を返します。

指定された typefalse を返す場合は、 それより大きな 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)