多くの友人は setcookie を使用して値を空または NULL に設定します。ここで、Cookie の値が null または空の文字列の場合に Cookie を削除する理由を分析してみましょう。それを参照してください。
これは公式ドキュメントにも書かれています:
#2 setcookie() 削除の例
コードは次のとおりです | コードをコピー |
// 有効期限を 1 時間前に設定します |
今日不思議な事に遭遇しました、Cookieを設定する際に$valueに空の文字列を渡したのですが、その結果Cookieが削除されてしまいました…
コードは次のとおりです | コードをコピー |
$name = "post_url"; |
php 5.4.13のソースコードを調べて確認してください
C言語のパラメータの値の型はchar *であり、その長さを示すvalue_lenもあります。
value_len が 0 の場合、次の Cookie が書き込まれます:
値は「削除」で、有効期限は 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 も削除できます。