PHP在将数组编码为JSON时输出NULL


PHP outputs NULL when encoding an array to JSON

我有一个PHP数组,我想将其编码为JSON,以便稍后在JavaScript文件中传递它。

当我尝试时,JavaScript输出:

"SyntaxError:意外的令牌N"

然后我尝试在PHP中回显这个JSON字符串,它输出:

NULL
{
    "cg": "3",
    "cb": 0,
    "cc": "0%",
    "ci": "0",
    "wm": 0,
    "tl": "120"
}

为什么有NULL?这是我的代码:

$table = array(
"cg" => $v1,
"cb" => $v2,
"cc" => $v3,
"ci" => $v4,
"wm" => $v5,
"tl" => $v6
);
echo json_encode($table);

编辑以处理评论:

在数据库中,$v1是varchar(255),$v6是int(11)

检索值如下:

function fetchinfo($rowname,$tablename,$finder,$findervalue) {
    if($finder == "1") $result = mysql_query("SELECT $rowname FROM $tablename");
    else $result = mysql_query("SELECT $rowname FROM $tablename WHERE `$finder`='$findervalue'");
    $row = mysql_fetch_assoc($result);
    return $row[$rowname];
}

然而,情况并非总是如此,有时值可以是一个简单的字符串:$v6="120";

假设变量的值如上面的json数据所示,我无法重现错误-似乎可以。

    $v1=3;
    $v2=0;
    $v3='%0';
    $v4=0;
    $v5=0;
    $v6=120;
    $table = array(
        "cg" => $v1,
        "cb" => $v2,
        "cc" => $v3,
        "ci" => $v4,
        "wm" => $v5,
        "tl" => $v6
    );
    echo json_encode( $table );
    /*
        {"cg":3,"cb":0,"cc":"%0","ci":0,"wm":0,"tl":120}
    */