php中静态字符串的双向映射类


Two way mapping class for static strings in php

在php中实现静态字符串的双向映射类的最好方法是什么?我认为有Enum类有6个常量3个键值对的2种方式映射。请提出更好的实施方案。

例如:如果我有以下映射,如果我引用M,我需要得到Mangalore,如果我引用Mangalore,我也需要得到M


M =>芒格洛尔德里D =>
0 => 0

谢谢! !

我认为有Enum类有6个常量3个键值对的2种方式映射。请提出更好的实施方案。

除非你绝对需要,否则不需要一个特殊的类。简单的PHP数组可以做到这一点
<?php
$names=array();
$names["M"]="Mangalore";
$names["D"]="Delhi";
$names["O"]="Ooty";
echo $names["M"]; //  Mangalore
echo array_search("Mangalore", $names); //M
?>

编辑

你也可以为这个

写一个小函数
<?php
$names=array();
$names["M"]="Mangalore";
$names["D"]="Delhi";
$names["O"]="Ooty";
echo getMapping($names,"M");
echo getMapping($names,"Mangalore");
function getMapping($values,$search)
{
    if(array_key_exists($search,$values))
    {
        return $values[$search];
    }
    $key=array_search($search,$values);
    if($key)
    {
        return $key;
    }
    return 0;
}

?>