IntlChar::enumCharTypes

Unicode の一般カテゴリの情報付きで、全てのコードポイントを走査する

説明

public static void IntlChar::enumCharTypes(callable $callback)

Unicode の一般カテゴリの情報を付加した形で、全てのコードポイントを効率的に走査します。 これは、全ての割当済みのコードポイントを走査し、データ構造を作る用途などに役立ちます。

一般カテゴリ("character type") の情報が付いた、コードポイントの連続した範囲それぞれについて、 callback 関数がコールされます。 隣接した範囲は違う type を持ちます。 Unicode 標準は、この type の値の範囲が 0..31 にあることを保証しています。

パラメータ

callback

同じ一般カテゴリを持つ、連続した範囲のコードポイントそれぞれについて、 コールされるコールバック関数です。 3つの引数を渡すことが出来ます:

  • int $start - 範囲の始めにあたるコードポイント
  • int $end - 範囲の最後にあたるコードポイント
  • int $name - カテゴリタイプ (定数 IntlChar::CHAR_CATEGORY_* のうちのひとつ)

戻り値

値を返しません。

例1 サンプルのコードポイントの範囲を走査する

<?php
IntlChar::enumCharTypes(function($start, $end, $type) {
    printf("U+%04x through U+%04x are in category %d\n", $start, $end, $type);
});
?>

上の例の出力は以下となります。

U+0000 through U+0020 are in category 15
U+0020 through U+0021 are in category 12
U+0021 through U+0024 are in category 23
U+0024 through U+0025 are in category 25
U+0025 through U+0028 are in category 23
U+0028 through U+0029 are in category 20
U+0029 through U+002a are in category 21
U+002a through U+002b are in category 23
U+002b through U+002c are in category 24
U+002c through U+002d are in category 23
U+002d through U+002e are in category 19
U+002e through U+0030 are in category 23
U+0030 through U+003a are in category 9
...