Случается, когда вы пытаетесь получить доступ к массиву с помощью ключа, который не существует в массиве.
Типичным примером для уведомления Undefined Index
будет ( demo )
$data = array('foo' => '42', 'bar');
echo $data['spinach'];
echo $data[1];
Оба spinach
и 1
не существуют в массив, вызывающий запуск E_NOTICE
.
Решение состоит в том, чтобы убедиться, что индекс или смещение существуют до доступа к этому индексу. Это может означать, что вам необходимо исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы с помощью array_key_exists
или isset
:
$data = array('foo' => '42', 'bar');
if (array_key_exists('spinach', $data)) {
echo $data['spinach'];
}
else {
echo 'No key spinach in array';
}
Если у вас есть код например:
, тогда $_POST['message']
не будет установлена, когда эта страница будет загружена первой, и вы получите указанную выше ошибку. Только когда форма будет отправлена и этот код будет запущен во второй раз, будет существовать индекс массива. Вы обычно проверяете это с помощью:
if ($_POST) .. // if the $_POST array is not empty
// or
if ($_SERVER['REQUEST_METHOD'] == 'POST') .. // page was requested with POST
Вопросы, относящиеся:
Я поражен, что Визуальный Помогают еще, не был упомянут!
ViEmu является моим любимым. Эмулирует VI правой внутренней части VS.:^)
VSFileExplorer является хорошим файловым менеджером для VS. Это также очень полезно, когда используется вместе с subversion/tortoiseSVN, так как это отображает значки наложения черепахи в рамках VS.
и конечно
GhostDoc для поколения документа XML комментирует для методов, свойств, классов...
помогите очень полезно, визуальный линт является хорошим, но скучным.
Никто не использует Resharper ? - Тебе должно быть стыдно! ; -)
Серьезно, вы не знаете, что вам не хватает (я знаю, потому что мне еще не удалось убедить своего босса купить это, и мой период оценки истек)
Добавление этого инструмента в Visual Studio почти доводит его до уровня IntelliJ Idea for Java
Незначительный мой: Linkify , который упрощает ссылки в комментариях на dev wiki, msdn, систему отслеживания ошибок и т. Д.
Мои две копейки стоят: TabStudio и RockScroll .
Tab Studio потрясающе работает при работе с приложениями WPF / Silverlight, пытаясь отслеживать любое количество кода, модели представления и файлов xaml.
Rock scroll отлично подходит для больших файлов и быстрого поиска ссылок.
RockScroll - это здорово, но есть кое-что более мощное: MetalScroll :)
btw... Я также рекомендую этот патч: http://code.google.com/p/metalscroll/issues/detail?id=9