我正在发送一个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()

这样,您还将始终知道数据的类型。

09-19 12:37