我正在发送一个Ajax请求,该请求将对象objectVariable
发送到PHP文件:
$.post(url, {action : 'function' , object : objectVariable });
然后,PHP文件将把objectVariable
存储在$_SESSION['objectVariable']
中(为了清楚起见,我省略了验证):
function function_callback() {
if(!session_id())
session_start();
$_SESSION['objectVariable'] = $_POST['objectVariable'];
}
当用户转到网站的其他页面时,$_SESSION['objectVariable']
将再次通过Ajax从PHP发送给用户。在这里,我应该将存储在$_SESSION['objectVariable']
中的数组编码为JSON字符串:
//inside other Axax callback function
echo json_encode($_SESSION['objectVariable']);
这是正确的,但我也可以将JSON字符串存储到$_SESSION['objectVariable']
:中
function function_callback() {
if(!session_id())
session_start();
$_SESSION['objectVariable'] = json_encode($_POST['objectVariable']);
}
然后,只需echo $_SESSION['objectVariable']
将其发送到Javascript文件。
我想知道有什么更好的方法:将数组存储在$_SESSION['objectVariable']
中,或者存储JSON字符串。
有什么建议吗?
在Javascript/PHP之间发送数据时,我总是将其编码为JSON字符串。它使事情变得更简单。事实上,当你第一次把它发送到服务器时,我会立即JSON.stringify()
。
通过这种方式,您也将始终知道数据的类型。