Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Cookie中存储php数组的最佳方法_Php_Arrays_Cookies - Fatal编程技术网

在Cookie中存储php数组的最佳方法

在Cookie中存储php数组的最佳方法,php,arrays,cookies,Php,Arrays,Cookies,我有一个在购物车中存储产品的阵列: $array = Array ( [1] => 1 [2] => 2 [3] => 3 ) 我想将其保存在cookies中,但我不确定是否正确: setcookie('bag',json_encode($array),time()+14*24*60*60,'/',null,null,true); 为了显示我使用foreach和decode的产品:json\u decode($\u COOKIE['bag'],tr

我有一个在购物车中存储产品的阵列:

$array = 
Array
(
    [1] => 1
    [2] => 2
    [3] => 3
)
我想将其保存在cookies中,但我不确定是否正确:

setcookie('bag',json_encode($array),time()+14*24*60*60,'/',null,null,true);
为了显示我使用foreach和decode的产品:
json\u decode($\u COOKIE['bag'],true)

在cookie值中,它是这样的:
%7B%221%22%3A%221%22%2C%222%22%3A%222%22%2C%223%22%3A%223%22%7D


这样好吗?

不要在cookie中存储太多数据。存储一个链接到该用户的唯一购物车id,并将所有项目存储在数据库中。首先,这不是个好主意。其次,序列化()/unserialize()比json_encode()/json_decode()更好。@brokershow为什么你认为json_encode比序列化更糟糕?我在其他线程中看到,json_encode是更好的选择。我不认为您试图将数据来回传递到前端和后端,而是采用后端到后端的方法,这是PHP特有的。“…这对于在不丢失PHP值的类型和结构的情况下存储或传递PHP值非常有用,这意味着它可以表示PHP类型,包括您自己的类的实例,您将获得您的对象…”如果需要在服务器端存储,请在前端使用localStorage或$\会话。