我如何测试是否使用php设置cookie,如果没有设置什么都不做

Aar*_*ron 16 php cookies

我试过了

 $cookie = $_COOKIE['cookie'];
Run Code Online (Sandbox Code Playgroud)

如果没有设置cookie,它会给我一个错误

PHP ERROR
Undefined index: cookie
Run Code Online (Sandbox Code Playgroud)

我怎么能阻止它给我一个空变量>

Roc*_*mat 44

使用isset看是否cookie存在.

if(isset($_COOKIE['cookie'])){
    $cookie = $_COOKIE['cookie'];
}
else{
    // Cookie is not set
}
Run Code Online (Sandbox Code Playgroud)


Joh*_*ker 15

您可以使用array_key_exists实现此目的,如下所示:

$cookie = array_key_exists('cookie', $_COOKIE) ? $_COOKIE['cookie'] : null;
Run Code Online (Sandbox Code Playgroud)

  • 好极了!一个没有解释的匿名downvote - 多么有用.:-) (11认同)
  • @Mike isset() 也不这样做。我认为当您知道数组(在本例中为 $_COOKIE)存在并且可以访问时, array_key_exists() 是一个更好的方法。 (2认同)

Sho*_*hoe 6

根据您的需要.

// If not set, $cookie = NULL;
if (isset($_COOKIE['cookie'])) { $cookie = $_COOKIE['cookie']; }
Run Code Online (Sandbox Code Playgroud)

要么

// If not set, $cookie = '';
$cookie = (isset($_COOKIE['cookie'])) ? $_COOKIE['cookie'] : '';
Run Code Online (Sandbox Code Playgroud)

要么

// If not set, $cookie = false;
$cookie = (isset($_COOKIE['cookie'])) ? $_COOKIE['cookie'] : false;
Run Code Online (Sandbox Code Playgroud)

参考文献: