0

我是 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}

我在分配值时做错了吗?

谢谢

4

4 回答 4

2

您发送到客户端的数组中没有“用户名”键,您应该改用 $arr['name']

于 2012-05-17T05:56:58.537 回答
1

我不知道在这种情况下使用 strcmp() 的好处,但这将解决您的问题

if ( strcmp( $name, 'harry' ) === 0) {

strcmp() 的用法在这里有点反直觉,所以你可以使用

if ( $name === 'harry' ) {
于 2012-05-17T05:59:06.860 回答
0

以下代码对我有用...检查一下

$name=$_GET['username'];
if(strcmp($name,'harry')==0)
{
$arr['status']= 'success';
$arr['name']=$name;
echo json_encode($arr);
}
于 2012-05-17T06:01:13.323 回答
0
$name=$_GET['username'];
if ( strcmp( $name, 'harry' )===0 ) {
  $arr['status'] = 'success';
  $arr['username'] = $name; <---------- changed the index in $arr from 'name' to 'username'
  echo json_encode($arr);
}

strcmp如果两个字符串相等,则返回 0(记住区分大小写

于 2012-05-17T06:10:36.823 回答