Heim  >  Artikel  >  Backend-Entwicklung  >  Eine unterhaltsame Erweiterung zur Geschlechterbeurteilung in PHP

Eine unterhaltsame Erweiterung zur Geschlechterbeurteilung in PHP

藏色散人
藏色散人nach vorne
2021-06-28 10:44:183805Durchsuche

Eine unterhaltsame Erweiterung zur Geschlechterbeurteilung in PHP

Die Erweiterung, die wir heute lernen werden, ist ebenfalls eine sehr Nischenerweiterung. Um es ganz klar auszudrücken: Vielleicht hat noch niemand die Erweiterung verwendet. Natürlich dient es uns nur zu Lernzwecken, um zu sehen, was diese Erweiterung ist und was daran interessant ist.

Erweiterungsbeschreibung

Der Namenserweiterung ist zu entnehmen, dass es sich um eine Geschlechtserweiterung handelt. Diese Erweiterung kann den Geschlechtsstatus basierend auf dem an sie übergebenen Benutzernamen sowie der Region und dem Land zurückgeben, in dem sich der Benutzer befindet. Ist es nicht sehr interessant? Diese Erweiterung kann direkt von der PECL-Website heruntergeladen und installiert werden und es gibt keine weiteren besonderen Anforderungen.

Die Gender-Erweiterung basiert auf der Funktionsbibliothek gender.c, die vom großen Meister Jörg Michael geschrieben wurde. Sie soll mehr als 40.000 Namen in 54 Ländern und Regionen enthalten. Für bestimmte Situationen werden wir uns die Wirkung im folgenden Testcode genauer ansehen.

Neueste Informationen zur Kurseröffnung: Die 16. Periode von PHP Full Stack ist online und die Kurse beginnen heute Abend um 20:00 (6.28)! Einzelheiten finden Sie unter: https://www.php.cn/k.html

Bestimmen Sie das Geschlecht anhand des Namens

Bei Verwendung dieser Erweiterung müssen wir zunächst eine Funktion vorbereiten, die eigentlich der Erleichterung dient Unsere anschließenden Tests sind betriebsbereit.

$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;
    }
}

Instanziieren Sie zunächst ein Gender-Objekt und definieren Sie dann eine Funktion. In dieser Funktion geben wir die von der get()-Methode in der Gender-Klasse zurückgegebenen Informationen aus. Die zurückgegebenen Informationen sind der vom $gender-Objekt zurückgegebene Wert zur Geschlechtsbestimmung basierend auf den angegebenen Parametern. Dann verwenden wir den folgenden Schalter, um zu bestimmen, ob der zurückgegebene Wert der Konstanten in der Klasse entspricht, sodass wir wissen, was das zurückgegebene Ergebnis ist. Die Methode „country()“ ruft die detaillierten Informationen des angegebenen Landes und der angegebenen Region ab, und wir können ihre Ausgabe im folgenden Testcode sehen.

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

Der nächste Schritt besteht darin, es einfach zu testen. Testen Sie zunächst einen englischen Namen und geben Sie als Land und Region USA an, also die Vereinigten Staaten. Sie können sehen, dass der von get() zurückgegebene Wert 77 ist, was dem konstanten Wert von IS_MALE entspricht, was bedeutet, dass es sich um einen männlichen Namen handelt. Der von der Funktion „country()“ zurückgegebene Inhalt ist der vollständige Name und die Abkürzungsinformationen des Landes. Im zweiten Test erhielten wir den Namen einer Japanerin (Ayumi Hamasakis englischer Name) und wir können sehen, dass die Informationen über die Frau und das Land normal zurückgegeben wurden. Unterstützt diese Erweiterung also Chinesisch?

Leider wird Chinesisch nicht unterstützt, daher müssen wir chinesische Pinyin-Namen verwenden. Wenn das angegebene Land und die angegebene Region CHINA ist, sind die zurückgegebenen Pinyin-Namen neutrale Namen (Namen, die sowohl von Männern als auch von Frauen verwendet werden können).

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

Ähm, es scheint ein Betrug zu sein. Dieses Ding hat für uns keinen praktischen Nutzen. Da es nur sehr wenige Informationen zu dieser Erweiterung gibt und die auf Chinesisch ausgerichteten Informationen überhaupt nicht verfügbar sind, weiß ich nicht, ob sie den chinesischen Namen basierend auf Pinyin bestimmt. Vollständiges Chinesisch gibt direkt NAME_NOT_FOUND-Informationen zurück. Also, viel Spaß an alle!

Zusammenfassung

Ich muss sagen, wenn ich die Dokumentation nicht gelesen hätte, hätte ich nicht gewusst, dass PHP überhaupt eine solche Erweiterungsbibliothek bereitstellt. Tatsächlich können interessierte Studenten versuchen, eine ähnliche Erweiterungsbibliothek zu schreiben, die chinesische Namen ermitteln kann. Obwohl sie in der tatsächlichen Geschäftsentwicklung möglicherweise nicht häufig verwendet wird, kann sie als Open-Source-Praxis zur Verbesserung der eigenen C-Technologie verwendet werden.

测试代码:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202011/source/1.PHP中一个好玩的性别判断扩展.php
参考文档:
https://www.php.net/manual/zh/book.gender.php

Das obige ist der detaillierte Inhalt vonEine unterhaltsame Erweiterung zur Geschlechterbeurteilung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:ZyBlog. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen