您好,登錄后才能下訂單哦!
這篇文章主要介紹了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í)!
免責(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)容。