如何在PHP中正确获取Cookie的价值?

Joe*_*hew 1 html php cookies setcookie

我的代码中包含以下段.该块实际上是一个调试块,用于在使脚本生效之前进行检查.

if ($_COOKIE['visits'] = '' ) 
{
    $dbgmsg="No cookie found";
    $visits=1;  
    setcookie('visits',$visits,time() + (86400*30)); // 86400 = 1 day 900=15mins    
}
else 
{

    $visits=$_COOKIE['visits'];
    //$dbgmsg="Cookie found. Value is".$_COOKIE['visits'];
    $dbgmsg='<p>Cookie found. Value is'.$_COOKIE["visits"].'</p>';
    $visits++;
    setcookie('visits',$visits,time() + (86400*30));
}
Run Code Online (Sandbox Code Playgroud)

脚本运行时,输出为: Cookie found. Value is

意味着不显示cookie的值.检查Chrome中的Cookie值会显示Cookie"访问"存在,值为1.但代码似乎进入了else块.但检索到的值是null?

我希望根据访问量增加cookie的值.

Joh*_*nde 8

您正在使用赋值=运算符而不是比较运算符==.这将永远是真实的,这不是你想要的.

更改

if ($_COOKIE['visits'] = '' ) 
Run Code Online (Sandbox Code Playgroud)

if ($_COOKIE['visits'] == '' ) 
Run Code Online (Sandbox Code Playgroud)

甚至更好,使用 empty()

if (empty($_COOKIE['visits'])) 
Run Code Online (Sandbox Code Playgroud)