当我使用 Ajax 调用 PHP 文件并使用 javascript 字典传递 POST 变量时,该 POST 变量的值将被解析为 PHP 字典。但是,字符串值的长度会预先添加到字符串中。对于数组也是同样的道理。为什么会出现这种情况?我该如何避免这种情况? (当比较字符串时,PHP 认为 string(x) 是字符串的一部分)
编辑:字符串比较仍然有效,我仍然想知道为什么要添加它。 EDIT2:我找到了答案,这实际上是 var_dump 的一部分..
Javascript ajax 调用:
var res = $.ajax({
type: "POST",
data: {
name:"STRING NAME",
validators:{KEY: "VALUE", KEY2: "VALUE2"}
},
url: url,
dataType: "json",
async: false,
success: function(data) {
result=data;
}
});
使用 PHP 在接收端转储变量
array(2) {
["KEY"]=>
string(5) "VALUE"
["KEY2"]=>
string(6) "VALUE2"
}
最佳答案
在您的示例中:
array(2) {
["KEY"]=>
string(5) "VALUE"
["KEY2"]=>
string(6) "VALUE2"
}
您会看到“string(5) "VALUE"”,因为您正在通过 var_dump() 函数进行打印。
您应该使用 print_r() 函数来隐藏数据类型。
关于javascript - 在 PHP 中使用 JSON 时在字符串之前添加字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56849455/