PHP | 在cookie中存储布尔值

Sty*_*son 0 php cookies boolean

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

setcookie('myCookie',false);
Run Code Online (Sandbox Code Playgroud)

即使我添加到期时间

setcookie('myCookie',false,time()+3600);
Run Code Online (Sandbox Code Playgroud)

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

Álv*_*lez 9

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

var_dump((string)true, (string)false);
Run Code Online (Sandbox Code Playgroud)
string(1) "1"
string(0) ""
Run Code Online (Sandbox Code Playgroud)

只需从头开始使用文字:

setcookie('myCookie', '0');
Run Code Online (Sandbox Code Playgroud)

... 要么:

setcookie('myCookie', $value ? '1' : '0');
Run Code Online (Sandbox Code Playgroud)