Неопределенный индекс: при преобразовании значения cookie в переменную - PullRequest
0 голосов
/ 23 мая 2011

Проблема

Следующий код выдает эту ошибку из строки "print $ readerStatus" -

Неопределенный индекс: readerStatus

Код

<?php 
//Get Cookie Value
if (isset($_COOKIE['readerStatus'])) {
$readerStatus=$_COOKIE['readerStatus'];
} Else {
$readerStatus="Not Set";}
echo "The value of Cookie readerStatus is " .  $_COOKIE['readerStatus'];
print    $readerStatus;

?>

Справочная информация Цель состоит в том, что если файл cookie установлен, я хочу передатьзначение в Javascript.Моя стратегия такова:

  • Получить значение из cookie
  • Установить переменную в значение cookie
  • Затем использовать php-эхо внутриJavascript для передачи значения.

Это работает, как и ожидалось, но Eclipse выдает мне ошибку, и поэтому я предполагаю, что с вышеуказанным кодом что-то не так.

Буду признателен за любыеуказатели на возможные источники проблемы.

Спасибо

Ответы [ 3 ]

0 голосов
/ 23 мая 2011

Это предупреждение, а не ошибка.Однако вы можете пропустить ошибку, используя array_key_exists .Как правило, я не фанат isset для такого рода проверки.

 if (array_key_exists('readerStatus', $_COOKIE))
 {
     $readerStatus=$_COOKIE['readerStatus'];
 }
 else
 {
     $readerStatus='Not Set';
 }
 echo 'The value of Cookie readerStatus is '. $readerStatus;
0 голосов
/ 23 мая 2011

Некоторые IDE менее просты, чем сам синтаксический анализатор PHP. При этом вы получаете какие-либо ошибки или уведомления при запуске кода? Переменные в PHP объявляются неявно, поэтому неопределенное индексное сообщение - это просто ЗАМЕЧАНИЕ (которое можно игнорировать) относительно доступа к элементу массива без его предварительного нахождения.

Если вы проверяете, что он существует до такого доступа, у вас не должно возникнуть проблем.

$readerStatus = isset($_COOIKE['readerStatus']) ? $_COOIKE['readerStatus'] : '';
0 голосов
/ 23 мая 2011

Это работает?

<?php 
//Get Cookie Value
if (isset($_COOKIE['readerStatus'])) {
    $readerStatus=$_COOKIE['readerStatus'];
} else {
    $readerStatus="Not Set";
}
echo ("The value of Cookie readerStatus is ".$readerStatus);
print ($readerStatus);
?>
...