0

我正在查看Gender 类用法示例,其中包含以下代码段:

case Gender::IS_UNISEX_NAME:
    printf("The name %s is unisex in %s\n", $name, $data['country']);
break;


case Gender::IS_A_COUPLE:
    printf("The name %s is both male and female in %s\n", $name, $data['country']);
break;

这给我的印象是IS_UNISEX_NAMEIS_A_COUPLE是同一个东西,这让我想知道为什么它有两个不同的常数。

这也让我觉得这可能是由于历史原因。或者也许这只是一个疏忽。

4

1 回答 1

4

我接受了aynber 的建议,并通过电子邮件向Gender 扩展的当前维护者 Anatol Belski 发送了电子邮件。这是他的回应(经他的许可发表):

基本上是一样的。在 PHP 中,“成对”几乎是出于兼容性的原因,因为没有什么能阻止更改名称字典。将相同的名字定义为男性和女性(所以两条线)意味着夫妻。使用 '?' 意味着它是中性的。术语的含义 - 情侣是男性和女性共同的名字,中性可以是例如给男性的女性名字。使用默认数据集,您可以简单地在 switch 中加入这两种情况。对于数据库格式,只需查看包中的 data/nam_dict.txt 即可。

于 2013-08-07T18:21:00.993 回答