ホームページ  >  記事  >  バックエンド開発  >  PHP の楽しい性別判断拡張機能

PHP の楽しい性別判断拡張機能

藏色散人
藏色散人転載
2021-06-28 10:44:183771ブラウズ

PHP の楽しい性別判断拡張機能

今日学習する拡張機能も、非常にニッチな拡張機能です。実際、率直に言って、おそらく誰も使用していません。まったく、拡大します。もちろん、この拡張機能がどのようなもので、何が興味深いのかを知るための学習のみを目的としています。

拡張子の説明

性別拡張子は、名前からわかります。これは性別拡張子です。この拡張子は、渡されたユーザー名と、地域諸国の性別ステータスを返すのは非常に興味深いと思いませんか?この拡張機能は PECL Web サイトから直接ダウンロードしてインストールでき、他に特別な要件はありません。

Gender 拡張機能は、巨匠 Joerg Michael が作成した関数ライブラリの「gender.c」をベースに使用されており、54 の国と地域で 40,000 以上の名前が含まれていると言われています。特定の状況について、以下のテスト コードでその効果を詳しく見てみましょう。

最新開講情報: PHPフルスタック第16限はオンラインとなり、今夜20:00(6.28)より授業が始まります!詳細については、次を参照してください: https://www.php.cn/k.html

名前に基づいて性別を判断する

これを使用して拡張する場合、最初に関数を準備する必要があります。これは、実際にはその後のテスト操作を容易にするためです。

$gender = new Gender\Gender;
function showGender($name, $country)
{
    global $gender;
    $result = $gender->get($name, $country);
    var_dump($result);
    $data = $gender->country($country);
    var_dump($data);
    switch ($result) {
        case Gender\Gender::IS_FEMALE:
            printf("%s:女性 - %s\n", $name, $data['country']);
            break;
        case Gender\Gender::IS_MOSTLY_FEMALE:
            printf("%s:大部分情况下是女性 -  %s\n", $name, $data['country']);
            break;
        case Gender\Gender::IS_MALE:
            printf("%s:男性 -  %s\n", $name, $data['country']);
            break;
        case Gender\Gender::IS_MOSTLY_MALE:
            printf("%s:大部分情况下是男性 - %s\n", $name, $data['country']);
            break;
        case Gender\Gender::IS_UNISEX_NAME:
            printf("%s:中性名称(不好确认性别) - \n", $name, $data['country']);
            break;
        case Gender\Gender::IS_A_COUPLE:
            printf("%s:男女都适用 - %s\n", $name, $data['country']);
            break;
        case Gender\Gender::NAME_NOT_FOUND:
            printf("%s:对应的国家字典中没有找到相关信息 -  %s\n", $name, $data['country']);
            break;
        case Gender\Gender::ERROR_IN_NAME:
            echo "给定的姓名信息错误\n";
            break;
        default:
            echo "错误!\n";
            break;
    }
}

まず、Gender オブジェクトをインスタンス化し、関数を定義します。この関数では、Gender クラスの get() メソッドによって返される情報を出力します。返される情報は、指定されたパラメーターに基づいて $gender オブジェクトによって返される性別判定値です。次に、次のスイッチを使用して、戻り値がクラス内の定数に対応するかどうかを判断し、返された結果が何であるかを確認します。 country() メソッドは、指定された国と地域の詳細情報を取得します。その出力は次のテスト コードで確認できます。

showGender("William", Gender\Gender::USA);
// int(77)
// array(2) {
//   ["country_short"]=>
//   string(3) "USA"
//   ["country"]=>
//   string(6) "U.S.A."
// }
// William:男性 -  U.S.A.
showGender("Ayumi Hamasaki", Gender\Gender::JAPAN);
// int(70)
// array(2) {
//   ["country_short"]=>
//   string(3) "JAP"
//   ["country"]=>
//   string(5) "Japan"
// }
// Ayumi Hamasaki:女性 - Japan

次のステップは単純にテストすることです。まず、英語名をテストし、国と地域を USA (米国) として指定します。 get() によって返される値は 77 であることがわかります。これは IS_MALE の定数値に対応しており、これは男性の名前であることを意味します。 country() 関数によって返される内容は、国の正式名と略称情報です。 2 回目のテストでは、日本人女性の名前 (浜崎あゆみの英語名) が与えられ、その女性と国に関する情報が正常に返されたことがわかります。では、この拡張機能は中国語をサポートしていますか?

申し訳ありませんが、中国語はサポートされていないため、中国語のピンイン名を使用する必要があります。指定された国と地域が中国の場合、返されるピンイン名は中立的な名前 (性別に関係なく) が使用されます。

howGender("Gang Qiang", Gender\Gender::CHINA);
// int(63)
// array(2) {
//   ["country_short"]=>
//   string(3) "CHN"
//   ["country"]=>
//   string(5) "China"
// }
// Gang Qiang:中性名称(不好确认性别)
showGender("Anna Li", Gender\Gender::CHINA);
// int(70)
// array(2) {
//   ["country_short"]=>
//   string(3) "CHN"
//   ["country"]=>
//   string(5) "China"
// }
// Anna Li:女性 - China

うーん、これは罠のようですね。私たちには実際には何の役にも立ちません。この拡張子に関する情報は非常に少なく、中国語に関する情報がまったく入手できないため、ピンインに基づいて中国語の名前を決定するかどうかはわかりません。完全な中国語では、NAME_NOT_FOUND 情報が直接返されます。それでは、皆さん楽しんでください!

概要

ドキュメントを更新していなかったら、PHP がそのような拡張ライブラリを提供していることすら知らなかったと言わざるを得ません。実際、興味のある学生は、中国語の名前を決定できる同様の拡張ライブラリを作成してみることができます。実際のビジネス開発では一般的に使用されないかもしれませんが、C 言語技術を向上させるためのオープンソースの実践として使用できます。

rree

以上がPHP の楽しい性別判断拡張機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はZyBlogで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。