php setcookie值为null或空字符串删除cookie解析
很多朋友在使用setcookie设置值为空或NULL时系统会自动把cookie给删除掉,下面我来给大家分析cookie值为null或空字符串删除cookie原因吧,有需要学习的朋友可参考,官方文档中也是这样写的:
setcookie() delete example
<?php // set the expiration date to one hour ago setcookie ( "TestCookie" , "" , time() - 3600); setcookie ( "TestCookie" , "" , time() - 3600, "/~rasmus/" , "example.com" , 1); ?>今天遇到一件奇怪的事,在setcookie的时候,传了一个空字符串给$value,结果竟然是此cookie被删除了…代码如下:
$name = "post_url" ; $value = "" ; setcookie( $name , $value , time()+60*60*3, "/" );去翻php 5.4.13 的源码结果得知,参数中的value在C语言中的类型是char *,还有一个 value_len标明了它的长度,如果value_len为0的话,就写了下面的cookie:
值为]deleted], 过期时间为 Thu, 01-Jan-1970 08:00:01 CST 或者说是 Thu, 01-Jan-1970 00:00:01 GMT,看来setcookie($name, []) 确实可以删除这个cookie了…
同理,在php中,strval(NULL) === [] , 所以 setcookie($name, NULL) 也就相当于 setcookie($name, []),同样可以删除此cookie.
查看更多关于php setcookie值为null或空字符串删除cookie解析 - ph的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did29767