Страницы

Поиск по вопросам

суббота, 21 декабря 2019 г.

Ошибка “PHP Notice: Undefined offset: 1 in…”

#php


Вот код:
  $word[$i]=str_replace("*", ", ", $word[$i]);
  $part=explode("=", $word[$i]);
  $part1=str_replace("|", " ", $part[0]);
  $part2=str_replace("|", " ", $part[1]);

При его выполнении, если в $word содержится выражения типа:
[674237234092340234-42348437436::?(*)(_):;№! " " %)(_)]{^%#$@##$^^&*(&~@GVY()(*)(IOU}

То возникает ошибка 

PHP Notice:  Undefined offset:  1 in... 

которая указывает на строку: 
$part2=str_replace("|", " ", $part[1]);

Собственно, как исправить ошибку?
UPD:
Если в $word содержится: "В данной строке ($word) отсутствует знак", то ошибки не
возникает, хотя там нет знака =.    


Ответы

Ответ 1



В данной строке ($word) отсутствует знак =, поэтому после explode в массиве $part у вас есть только значение с 0 ключом и выражением $part2=str_replace("|", " ", $part[1]);. Вы пытаетесь обратиться к элементу с индексом 1, которого не существует, вот и ошибка.

Ответ 2



У тебя в строке [674237234092340234-42348437436::?(*)(_):;№! " " %)(_)]{^%#$@##$^^&*(&~@GVY()(*)(IOU} нет "=", а потому explode("=", $word[$i]); вернет массив с одним элементом, а следовательно $part[1] неопределен.

Комментариев нет:

Отправить комментарий