温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP中性别判断扩展的示例分析

发布时间:2021-06-28 11:09:55 来源:亿速云 阅读:136 作者:小新 栏目:编程语言

这篇文章主要介绍了PHP中性别判断扩展的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

扩展说明

Gender 扩展从名称就可以看出,它是一个关于性别的扩展,这个扩展可以根据传递给它的用户姓名以及用户所在的地区国度来返回性别情况,是不是非常有意思。这个扩展直接在 PECL 网站进行下载安装即可,没有什么别的特殊的要求。

Gender 扩展是根据 Joerg Michael 这位大神所写得 gender.c 这个函数库来使用的,据说是包含 54 个国家地区的 40000 多个名字。具体的情况我们在下面的测试代码中好好看看它的效果。

相关公益课程

最新开班信息:16期PHP全栈线上班,今晚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 对象根据指定参数所返回的性别判定值。然后我们通过下面的 switch 来判断返回的值是否与类中的常量所对应,这样就知道返回的结果是什么了。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() 函数返回的内容是国家的全称与简写信息。在第二段测试中,我们给定的是一个日本女性的名字(滨崎步的英文名字),可以看到也正常返回了女性以及国家的相关信息。那么,这个扩展支持中文吗?

抱歉,它是不支持中文的,所以我们需要使用中文的拼音名称,而且对于指定国家地区为 CHINA 的话,使用拼音名称返回的都是中性的名称(不分男女都可以使用的名字)。

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

感谢你能够认真阅读完这篇文章,希望小编分享的“PHP中性别判断扩展的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI