array_key_exists虽然不应该返回false

时间:2013-10-13 11:40:51

标签: php arrays

我正在制作足球脚本以获得正确的球队名称。这是我的功能包装在一个类中。

static function getMatchesName($league, $team){
    $eredivisie = array('PEC Zwolle' => 'PEC Zwolle',
                        'PSV Eindhoven' => 'PSV',
                        'SC Heerenveen' => 'SC Heerenveen',
                        'Ajax' => 'Ajax',
                        'AZ Alkmaar' => 'AZ',
                        'FC Twente' => 'FC Twente',
                        'Vitesse' => 'Vitesse',
                        'Cambuur' => 'Cambuur Leeuwarden',
                        'FC Groningen' => 'FC Groningen',
                        'Go Ahead Eagles' => 'Go Ahead Eagles',
                        'FC Utrecht' => 'FC Utrecht',
                        'Feyenoord' => 'Feyenoord',
                        'Heracles' => 'Heracles Almelo',
                        'Roda JC Kerkrade' => 'Roda JC',
                        'NAC Breda' => 'NAC Breda',
                        'RKC Waalwijk' => 'RKC Waalwijk',
                        'ADO Den Haag' => 'ADO Den Haag',
                        'NEC Nijmegen' => 'NEC');

    $leagues = array(57 => $eredivisie);

    if (!array_key_exists($league, $leagues)) return '1'; // return $team;

    var_dump(isset($leagues[$league][$team]));
    if (!array_key_exists($team, $leagues[$league])) return '2'; // return $team;
    else return $leagues[$league][$team];
}

我从另一个脚本调用此方法。如果联赛或球队不存在,则应退回最初的球队名称$ team。它目前返回1或2以进行调试。

现在就是这样:var_dump()在所有情况下都返回false。 is_string($team)为真,因此$team是一个字符串。当我运行没有像echo ClassName::getMatchesName(57, 'Heracles');这样的变量的函数时,它会像它应该的那样返回'Heracles Almelo'。

PHP版本:5.3.10

我知道如何解决这个问题吗?

已解决:原来我必须对其他脚本中的trim()变量执行$team

0 个答案:

没有答案