回调函数的奇怪行为

时间:2013-08-24 01:37:36

标签: php

我需要解析一个参数字符串变成数组。这是代码:

$paramStr = 'type,mp3|path,audio/file.php?id=artist01|popup,Yes';

function parse($paramStr) {
    $params = preg_split('#=|,|\|#', $paramStr);
    for ($i=0;$i<count($params);$i+=2) {
        if ($params[$i] == "path") {
            $params[$i+1] = $baseurl . "/" . $params[$i+1];
        }
        $ret[$params[$i]] = $params[$i+1];
    }
    return $ret;
}

if ($paramStr != "") {
    $paramArr = parse($paramStr);
} else {
    echo 'error';
}

当我var_dump($ ret)时,输出正确:

array
  'type' => string 'mp3' (length=3)
  'path' => string 'http://localhost/audio/file.php%3Fid%3Dartist01' (length=49)
  'popup' => string 'Yes' (length=3)

然而,当我var_dump($ paramArr)时,我得到了奇怪的输出:

array
  'type' => string 'mp3' (length=3)
  'path' => string 'http://localhost/audio/file.php?id' (length=34)
  'artist01' => string 'popup' (length=5)
  'Yes' => null

任何人都知道为什么?提前谢谢。

0 个答案:

没有答案