PHP |在cookie中存储布尔值

时间:2016-04-12 15:27:52

标签: php cookies boolean

我有一个问题。当我想用布尔值设置Cookie时(只是假值)它不会存储。

setcookie('myCookie',false);

即使我添加到期时间

setcookie('myCookie',false,time()+3600);

注意:未定义的索引:第4行的C:\ xampp \ htdocs \ Web \ php \ php_global_user.php中的myCookie

2 个答案:

答案 0 :(得分:9)

Cookie是纯文本。当您将PHP布尔值转换为文本时,只能使用true获得合理的值,因为这就是PHP的设计方式:

var_dump((string)true, (string)false);
string(1) "1"
string(0) ""

只需从头开始使用文字:

setcookie('myCookie', '0');

......或:

setcookie('myCookie', $value ? '1' : '0');

答案 1 :(得分:2)

使用0和1代替,然后再次将其更改回布尔值,然后加载cookie:

// set value to example variable
$setVar = true;

// setting the cookie
setcookie('myCookie', $setVar ? '1' : '0');

// reading the cookie
$readVar = isset($_COOKIE['myCookie']) && $_COOKIE['myCookie'] === '1';