此代码正确创建了一个cookie,然后返回一个数组。
$exampleString1 = 123;
$exampleString2 = 456;
$exampleStringArray = array();
$exampleStringArray[] = $exampleString1;
$exampleStringArray[] = $exampleString2;
$exampleStringArrayEncoded = json_encode($exampleStringArray);
setcookie('exampleCookie', $exampleStringArrayEncoded, time() + (86400 * 30), "/");
if(isset($_COOKIE['exampleCookie'])) {
$exampleCookie = $_COOKIE['exampleCookie'];
$exampleCookieDecoded = json_decode($exampleCookie);
var_dump($exampleCookieDecoded);
}
但是,当数组通过将第一行更改为以下内容而包含字符串时,此方法将无效:
$exampleString1 = 'abc';
$exampleString2 = 'def';
转储的值只是NULL
任何人都可以解释为什么我无法在cookie中存储字符串吗?
答案 0 :(得分:1)
设置Cookie后,可以在下一页访问它们 加载。
答案 1 :(得分:0)
我需要在json_decode之前删除转义的引号。为什么json_decode本身不这样做,我不知道。
$exampleCookie = stripslashes($_COOKIE['exampleCookie']);
$exampleCookieDecoded = json_decode($exampleCookie, true);