$ _COOKIE ['cookiefoo'],尝试获取一个cookie

Fel*_*lix 6 php cookies web-applications

我是webapps和PHP的新手.

我正在尝试获取一个尚未创建的cookie,我的意思是,当我尝试加载寻找不存在的cookie的页面时出现错误,我尝试用try/catch来摆脱这个没有成功.这是我正在尝试的代码:

try{

    $cookie =  $_COOKIE['cookiefoo'];

    if($cookie){

          //many stuffs here
    }
    else
        throw new Exception("there is not a cookie"); 
}
catch(Exception $e){

}
Run Code Online (Sandbox Code Playgroud)

如何实现这一点,任何想法,我们将不胜感激.

kar*_*m79 7

使用isset以防止发生如果密钥是不存在的任何警告或通知:

if(isset($_COOKIE['cookiefoo']) && !empty($_COOKIE['cookiefoo'])) {
    // exists, has a value
    $cookie =  $_COOKIE['cookiefoo'];
}
Run Code Online (Sandbox Code Playgroud)

array_key_exists虽然我认为isset更简洁,但可以做同样的事情:

if(array_key_exists('cookiefoo', $_COOKIE) && !empty($_COOKIE['cookiefoo'])) {
    // exists, has a value
    $cookie =  $_COOKIE['cookiefoo'];
}
Run Code Online (Sandbox Code Playgroud)

  • 无论哪种方式,isset或empty都是真的.我总是使用isset() (2认同)
  • 对于isset,为空的+1,对于像整数0,空数组和空字符串这样的值,将返回false.Isset仅对null和未设置的变量返回false. (2认同)