Php 未定义索引:setCookie的Name参数中的数组

Php 未定义索引:setCookie的Name参数中的数组,php,setcookie,undefined-index,Php,Setcookie,Undefined Index,我知道以前有人问过和回答过未定义的索引问题。但请让我幽默一下。我找不到这个具体案例的答案。(这是一个不同寻常的例子。) 这工作没有问题 <?php session_start(); if ( ! isset ( $_SESSION['loggedin'] ) ) { $_SESSION['loggedin'] = FALSE; } $expiry = time()+60*60*9000; setcookie('loggedin', 'foo', $expiry); echo

我知道以前有人问过和回答过未定义的索引问题。但请让我幽默一下。我找不到这个具体案例的答案。(这是一个不同寻常的例子。)

这工作没有问题

<?php
session_start();
if ( ! isset (  $_SESSION['loggedin'] ) ) {
    $_SESSION['loggedin'] = FALSE;
}

$expiry = time()+60*60*9000;
setcookie('loggedin', 'foo', $expiry);

echo "sessionvalue " . $_SESSION['loggedin'] . '<br>';
echo "cookievalue " . $_COOKIE['loggedin'] . '<br>';

?>
但是,当我将setCookie中的Name参数更改为如下数组时:

<?php
  session_start();
  if ( ! isset (  $_SESSION['loggedin'] ) ) {
    $_SESSION['loggedin'] = FALSE;
  }

  $expiry = time()+60*60*9000;
  setcookie('cookievalue[loggedin]', 'foo', $expiry);

  echo "sessionvalue " . $_SESSION['loggedin'] . '<br>';
  echo "cookievalue " . $_COOKIE['cookievalue[loggedin]'] . '<br>';

?>
我可以声明什么,以及如何避免第二种情况中的“通知”?

echo“cookievalue”$_COOKIE['cookievalue[loggedin]'。'
';
应该是

echo“cookievalue”$_COOKIE['cookievalue']['loggedin'].'
';
Try
echo“cookievalue”$_COOKIE['cookievalue']['loggedin'].'
'@V4KK4R只要PHP 5.4就可以工作,看看示例#3Did您只需复制粘贴@V4KK4R的注释?:)@萨马拉斯,我没注意到。下次我一定要把所有的评论都读一遍。谢谢你指出这一点!
<?php
  session_start();
  if ( ! isset (  $_SESSION['loggedin'] ) ) {
    $_SESSION['loggedin'] = FALSE;
  }

  $expiry = time()+60*60*9000;
  setcookie('cookievalue[loggedin]', 'foo', $expiry);

  echo "sessionvalue " . $_SESSION['loggedin'] . '<br>';
  echo "cookievalue " . $_COOKIE['cookievalue[loggedin]'] . '<br>';

?>
sessionvalue 1

Notice: Undefined index: cookievalue[loggedin] in /Applications/XAMPP/xamppfiles/htdocs/simpleauth/headersessioncookie.php on line 13
cookievalue