$pr_ip = explode(".", $ip_addr);
$my_ip = $pr_ip[0].$pr_ip[1].$pr_ip[2];
explode()
$arrdata = array_pad(explode('|', $file[0]), 666, '');
$data=explode("|", $file[0] ?? '');
? Задача этих ошибок не в том, чтобы программист все время как обезьяна везде писал isset и empty.
Любые сообщения об ошибках - служат для помощи программисту.
Данная ошибка подсказывает, что программист пытается обратиться к переменной, или элементу массива которых нет.
И увидев эту ошибку, программист не должен тупо затыкать ей рот через isset! А должен разобраться - почему вдруг нет нужной переменной.
А если делать чтобы доказать всем, что они круглые идиоты, не понимающие ваших уникальных проблем - то конечно надо по всему коду распихивать костыли с проверками на каждый чих.
Голова дана человеку не только для того, чтобы в неё есть.
Флаг в руки и барабан на шею. Безумству храбрых поем мы песню.
Никаких "вариантов" тут встречать не надо. Если человек в принципе умеет ходить, и знает что такое алгебра с литературой.
Вы вообще в состоянии понять, что это три разных действия, а не одно?
Это конечно ад, но уговаривать автора переписывать эту "процедурку" на нормальное MVC с DI я конечно не возьмусь.
поэтому
АХАХАХАХАХАХАХА!
Этот ответ выдает джуна сразу! )))
Первый пример - это говнокод самого автора, если следить за его выступлениями на этом ресурсе. Причем при сравнении он имеет в виду именно значение переменной, а не результат isset. И его уже натыкали в это носом. Но поскольку до него очень долго всё доходит, он решил уточнить, правильно ли все понял.
Я ОЧЕНЬ надеюсь, что вам этот код придется в дальнейшем поддерживать и модернизировать.
И это будет меня очень, очень радовать )
$a=$input[1];
легко и просто.if(isset($input[1])){$a=$input[1];}
Я бы эти 2 строки обернул бы в проверку что переменная с ип адресом не пустая
допустим $mass = '1|3|4||||4|||'
Делаешь $stroka = Explode('|', "$mass")
toxa@vinga:~$ php -r "var_export(explode('|', '1|3|4||||4|||'));"
array (
0 => '1',
1 => '3',
2 => '4',
3 => '',
4 => '',
5 => '',
6 => '4',
7 => '',
8 => '',
9 => '',
)
if (!empty($ip_addr) && filter_var($ip_addr, FILTER_VALIDATE_IP)) {
$pr_ip = explode(".", $ip_addr);
$my_ip = $pr_ip[0].$pr_ip[1].$pr_ip[2];
} else {
$my_ip = '';
}
$arrdata = explode('|', $file[0]);
if($arrdata[19]>0){...
if($arrdata[20]>0){...
if($arrdata[21]>0){...
Undefined array key 19
Undefined array key 20
Undefined array key 21
if(isset($statistic_data[19])>0){....
array(2) { [0]=> string(0) "" [1]=> string(0) "" }
о боже..... я это написал просто на ходу, не считая даже разделители, просто ради примера. Какой же ты душный то.
Написано час назад
Ой, не назначается! Собственно потому я и пошел сюда в поисках ответов. Я тоже думал, что должно назначаться, но вот нет. Почему, не пойму.
Написано 9 минут назад
if (!empty($statistic_data[19]) && $statistic_data[19] > 0)
if (!empty($statistic_data[19]))
if ($statistic_data[19] ?? 0)
set_error_handler(function(int $errno, string $errstr) {
if ((strpos($errstr, 'Undefined array key') === false) && (strpos($errstr, 'Undefined variable') === false)) {
return false;
} else {
return true;
}
}, E_WARNING);
$data=explode("|", $file[0] ?? '');