今天学习的一个扩展,也是一个非常小众的扩展。事实上,坦率地说,也许根本没有人使用过该扩展程序。当然,我们只是为了学习,看看这个扩展是什么,有什么有趣的地方。后缀说明从名字就可以看出Gender后缀。它是关于性别的延伸。此扩展程序可以根据传递给它的用户名和用户所在的地区和国家返回性别状态。是不是很有趣?这个扩展可以直接在PECL网站上下载安装,没有其他特殊要求。Gender扩展是基于JoergMichael编写的gender.c函数库使用的,据说包含了来自54个国家和地区的40000多个名字。具体情况下,我们在下面的测试代码中好好看看它的效果。根据名字判断性别在使用这个扩展的时候,我们需要先准备一个函数,其实方便我们后面的测试操作。$性别=新性别\性别;函数showGender($name,$country){global$gender;$result=$gender->get($name,$country);变量转储($结果);$data=$gender->country($country);变量转储($数据);switch($result){caseGender\Gender::IS_FEMALE:printf("%s:Female-%s\n",$name,$data['country']);休息;caseGender\Gender::IS_MOSTLY_FEMALE:printf("%s:大多数是女性-%s\n",$name,$data['country']);休息;caseGender\Gender::IS_MALE:printf("%s:男性-%s\n",$name,$data['country']);休息;caseGender\Gender::IS_MOSTLY_MALE:printf("%s:大多数情况是男性-%s\n",$name,$data['country']);休息;caseGender\Gender::IS_UNISEX_NAME:printf("%s:unisexname(不易确认性别)-\n",$name,$data['country']);休息;caseGender\Gender::IS_A_COUPLE:printf("%s:适用于两种性别-%s\n",$name,$data['country']);休息;caseGender\Gender::NAME_NOT_FOUND:printf("%s:在相应的国家字典中没有找到相关信息-%s\n",$name,$data['country']);休息;caseGender\Gender::ERROR_IN_NAME:echo"给定的姓名信息有误\n";休息;默认值:回声“错误!\n”;休息;}}首先实例化一个Gender对象,然后在这个函数中定义一个函数,我们打印Gender类中get()方法返回的信息,它返回的信息就是$gender返回的性别判断值根据指定的参数对象。然后我们通过下面的switch判断返回值是否对应类中的常量,从而知道返回的结果是什么。country()方法获取指定国家和地区的详细信息,我们可以在下面的测试代码中看到它们的输出。showGender("William",Gender\Gender::USA);//int(77)//数组(2){//["country_short"]=>//string(3)"USA"//["country"]=>//string(6)"U.S.A."//}//William:Male-U.S.A.showGender("AyumiHamasaki",Gender\Gender::JAPAN);//int(70)//array(2){//["country_short"]=>//string(3)"JAP"//["country"]=>//string(5)"Japan"//}//AyumiHamasaki:女-日本下一个是一个简单的测试,先测试一个英文名字,指定国家为USA,即美国。可以看出get()返回的值为77,对应的是IS_MALE的常量值,即这是一个男名。country()函数返回的内容是国家的全称和简称信息。在第二次测试中,给我们取了一个日本的女性名字(滨崎步的英文名),可以看到正常返回了女性和国家的信息。那么,这个插件支持中文吗?抱歉,它不支持中文,所以我们需要使用中文拼音名字,如果指定国家是CHINA,拼音名字会返回一个中性名字(一个不分性别都可以使用的名字)。howGender("刚强",Gender\Gender::CHINA);//int(63)//array(2){//["country_short"]=>//string(3)"CHN"//["country"]=>//string(5)"China"//}//刚强:中性名(不易确认性别)showGender("AnnaLi",Gender\Gender::CHINA);//int(70)//array(2){//["country_short"]=>//string(3)"CHN"//["country"]=>//string(5)"China"//}//AnnaLi:女人——中国,嗯,好像很猫腻,这东西对我们没有实际用处。由于这个插件的资料很少,面向中文的资料完全没有,不知道是不是根据拼音来确定中文名字的。完整的中文会直接返回NAME_NOT_FOUND信息。所以,让我们都玩得开心!综上,不得不说,如果不看文档,你真的不知道PHP中提供了这样一个扩展库。其实有兴趣的同学可以尝试写一个类似的可以判断中文名字的扩展库。虽然在实际业务开发中可能不常用,但可以作为一款开源手机来完善你的C语言。技术。测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/202011/source/1。一个有趣的PHP性别判断扩展。PHP参考文档:https://www.php。net/manual/zh/book.gender.php各媒体平台均可搜索【硬核项目经理】