溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP中性別判斷擴(kuò)展的示例分析

發(fā)布時(shí)間:2021-06-28 11:09:55 來(lái)源:億速云 閱讀:147 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹了PHP中性別判斷擴(kuò)展的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

擴(kuò)展說(shuō)明

Gender 擴(kuò)展從名稱就可以看出,它是一個(gè)關(guān)于性別的擴(kuò)展,這個(gè)擴(kuò)展可以根據(jù)傳遞給它的用戶姓名以及用戶所在的地區(qū)國(guó)度來(lái)返回性別情況,是不是非常有意思。這個(gè)擴(kuò)展直接在 PECL 網(wǎng)站進(jìn)行下載安裝即可,沒(méi)有什么別的特殊的要求。

Gender 擴(kuò)展是根據(jù) Joerg Michael 這位大神所寫得 gender.c 這個(gè)函數(shù)庫(kù)來(lái)使用的,據(jù)說(shuō)是包含 54 個(gè)國(guó)家地區(qū)的 40000 多個(gè)名字。具體的情況我們?cè)谙旅娴臏y(cè)試代碼中好好看看它的效果。

相關(guān)公益課程

最新開班信息:16期PHP全棧線上班,今晚20:00(6.28)開課!詳見:https://www.php.cn/k.html

根據(jù)姓名判斷性別

在使用這個(gè)擴(kuò)展的時(shí)候,我們要先準(zhǔn)備一個(gè)函數(shù),其實(shí)就是方便我們后面的測(cè)試操作的。

$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:中性名稱(不好確認(rèn)性別) - \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:對(duì)應(yīng)的國(guó)家字典中沒(méi)有找到相關(guān)信息 -  %s\n", $name, $data['country']);
            break;
        case Gender\Gender::ERROR_IN_NAME:
            echo "給定的姓名信息錯(cuò)誤\n";
            break;
        default:
            echo "錯(cuò)誤!\n";
            break;
    }
}

首先,實(shí)例化一個(gè) Gender 對(duì)象,然后定義一個(gè)函數(shù)。在這個(gè)函數(shù)中,我們打印了 Gender 類中的 get() 方法所返回的信息,它返回的信息就是 $gender 對(duì)象根據(jù)指定參數(shù)所返回的性別判定值。然后我們通過(guò)下面的 switch 來(lái)判斷返回的值是否與類中的常量所對(duì)應(yīng),這樣就知道返回的結(jié)果是什么了。country() 方法獲得的是指定國(guó)家地區(qū)的詳細(xì)信息,我們?cè)诤竺娴臏y(cè)試代碼中可以看到它們的輸出。

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

接下來(lái)就是簡(jiǎn)單地進(jìn)行測(cè)試,先是測(cè)試一個(gè)英文的名字,并且指定國(guó)家地區(qū)為 USA ,也就是美國(guó)。可以看到 get() 返回的值是 77 ,對(duì)應(yīng)的是 IS_MALE 的常量值,也就是這是一個(gè)男性的名稱。country() 函數(shù)返回的內(nèi)容是國(guó)家的全稱與簡(jiǎn)寫信息。在第二段測(cè)試中,我們給定的是一個(gè)日本女性的名字(濱崎步的英文名字),可以看到也正常返回了女性以及國(guó)家的相關(guān)信息。那么,這個(gè)擴(kuò)展支持中文嗎?

抱歉,它是不支持中文的,所以我們需要使用中文的拼音名稱,而且對(duì)于指定國(guó)家地區(qū)為 CHINA 的話,使用拼音名稱返回的都是中性的名稱(不分男女都可以使用的名字)。

howGender("Gang Qiang", Gender\Gender::CHINA);
// int(63)
// array(2) {
//   ["country_short"]=>
//   string(3) "CHN"
//   ["country"]=>
//   string(5) "China"
// }
// Gang Qiang:中性名稱(不好確認(rèn)性別)
showGender("Anna Li", Gender\Gender::CHINA);
// int(70)
// array(2) {
//   ["country_short"]=>
//   string(3) "CHN"
//   ["country"]=>
//   string(5) "China"
// }
// Anna Li:女性 - China

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“PHP中性別判斷擴(kuò)展的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI