【发布时间】:2012-05-24 17:22:16
【问题描述】:
我是 php 新手。我一直在尝试在 php 中构造一个数组并将其编码为 JSON。这将在客户端使用xmlhttprequest 接收。
但是有一个问题。我无法将变量写入数组。
这就是我想要做的。
$name=$_GET['username'];
if ( strcmp( $name, 'harry' ) ) {
$arr['status'] = 'success';
$arr['name'] = $name;
echo json_encode($arr);
}
但是当我在客户端提出请求时。我得到一个空值代替变量。除了这个值之外,数组中的其他一切都很好。
我得到的响应文本是
{"status":"success","username":null}
我在分配值时做错了吗?
谢谢
【问题讨论】:
-
您的代码看起来不错。你能在 $_GET['username'] 上做一个回显来检查你是否从请求中获取名称。
-
我试过 echo $_GET['username'] 但它返回一个空白字符串。但是字符串比较 if ( strcmp( $name, 'harry' ) ) 评估为真。这意味着我正在从客户端获取字符串吗?谢谢
-
使用 itachi 提到的 strcmp( $name, 'harry' )===0 。但是问题很明显,您在请求中没有得到任何东西。
-
尝试使用 $arr['username'] 而不是 $arr['name']。我认为问题在于您正在混合数组中的键。 $arr['name'] 在数组中创建一个与 $arr['username'] 不同的新元素
标签: php arrays json string xmlhttprequest