PHP Cookie数组只能使用整数,但不能使用字符串

时间:2019-06-23 10:30:58

标签: php cookies

此代码正确创建了一个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中存储字符串吗?

2 个答案:

答案 0 :(得分:1)

  

设置Cookie后,可以在下一页访问它们   加载。

https://www.php.net/manual/en/function.setcookie.php

答案 1 :(得分:0)

我需要在json_decode之前删除转义的引号。为什么json_decode本身不这样做,我不知道。

$exampleCookie = stripslashes($_COOKIE['exampleCookie']);
$exampleCookieDecoded = json_decode($exampleCookie, true);