PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのIntlChar::charName()関数の使い方を徹底解説

PHPのIntlChar::charName()関数は、指定したUnicode文字の正式名称(キャラクター名)を取得するための関数です。この関数を使うことで、「&」が「AMPERSAND」であるといったように、Unicodeコンソーシアムが定義する文字名をプログラムから簡単に参照できます。

基本構文

string IntlChar::charName( val [, choice = IntlChar::UNICODE_CHAR_NAME] )

パラメータ

  • val ― 名前を取得したい対象の文字です。整数値(コードポイント)またはUTF-8でエンコードされた文字列を指定できます。

  • choice ― 取得する文字名の種類を指定するオプション引数です。以下の定数が利用可能です。

    • IntlChar::UNICODE_CHAR_NAME

    • IntlChar::CHAR_NAME_ALIAS

    • IntlChar::CHAR_NAME_CHOICE_COUNT

    • IntlChar::UNICODE_10_CHAR_NAME

    • IntlChar::EXTENDED_CHAR_NAME

戻り値

IntlChar::charName()関数は、入力データに対応する文字名を文字列として返します。該当する文字名が存在しない場合は空文字列が返されます。また、無効な入力が渡された場合にはNULLが返される点にも注意してください。

使用例1:記号「&」の文字名を取得

まずは、記号「&」の文字名を取得してみましょう。

<?php
    var_dump(IntlChar::charName("&"));
    echo "<br>";
    var_dump(IntlChar::charName("&", IntlChar::EXTENDED_CHAR_NAME));
?>

出力結果

string(9) "AMPERSAND"
string(9) "AMPERSAND"

デフォルト設定とIntlChar::EXTENDED_CHAR_NAMEを指定した場合のどちらでも、「AMPERSAND」という文字名が返されていることがわかります。

使用例2:英字「K」の文字名を取得

次に、大文字アルファベット「K」の場合を見てみます。

<?php
    var_dump(IntlChar::charName("K"));
    echo "<br>";
    var_dump(IntlChar::charName("K", IntlChar::EXTENDED_CHAR_NAME));
?>

出力結果

string(22) "LATIN CAPITAL LETTER K"
string(22) "LATIN CAPITAL LETTER K"

「LATIN CAPITAL LETTER K」つまり「ラテン大文字のK」という正式名称が取得できました。

使用例3:さまざまな入力値での動作確認

最後に、複数の異なる入力値を渡した場合の挙動を確認してみましょう。

<?php
    var_dump(IntlChar::charName("5"));
    echo "<br>";
    var_dump(IntlChar::charName("10"));  
    echo "<br>";
    var_dump(IntlChar::charName("e"));
    echo "<br>";
    var_dump(IntlChar::charName("}"));
?>

出力結果

string(10) "DIGIT FIVE"
NULL
string(20) "LATIN SMALL LETTER E"
string(19) "RIGHT CURLY BRACKET"

出力結果のポイント

この例から重要な挙動が読み取れます。「5」は単一の文字なので「DIGIT FIVE」が返されますが、「10」は2文字の文字列であり単一のUnicode文字として扱えないためNULLが返されます。一方、「e」は「LATIN SMALL LETTER E」、「}」は「RIGHT CURLY BRACKET」という名称が正しく取得されています。

このようにIntlChar::charName()関数を使用する際は、必ず単一の文字(または有効なコードポイント)を渡すことが重要です。マルチバイト文字や複数文字の文字列を渡した場合の戻り値には注意しましょう。

  1. PHPのIntlChar::isIDStart()関数とは?使い方とサンプルコードを解説

    IntlChar::isIDStart() 関数は、指定された文字が識別子(identifier)の先頭の文字として使用できるかどうかを判定するための関数です。変数名やクラス名など、PHPにおける識別子の命名規則をチェックしたい場合に役立ちます。 構文 bool IntlChar::isIDStart(val) パラメータ val − UTF-8文字列としてエンコードされた1文字、または整数値(Unicodeコードポイント)を指定します。 戻り値 引数 val が識別子の先頭文字として有効な場合は TRUE(bool(true)) を返し、無効な場合は FALSE(bool(false))

  2. PHPのIntlChar::charName()関数の使い方を徹底解説

    PHPのIntlChar::charName()関数は、指定したUnicode文字の正式名称(キャラクター名)を取得するための関数です。この関数を使うことで、「&」が「AMPERSAND」であるといったように、Unicodeコンソーシアムが定義する文字名をプログラムから簡単に参照できます。基本構文string IntlChar::charName( val [, choice = IntlChar::UNICODE_CHAR_NAME] )パラメータval ― 名前を取得したい対象の文字です。整数値(コードポイント)またはUTF-8でエンコードされた文字列を指定できます。choice ― 取得