После миграции возникает сообщение: Notice: Undefined variable: quotes in /***/***/***/***/***/***.php on line 38 Строка: Код (Text): <p><strong>Сегодня купили: </strong>'.number_of_people($quotes['random_number']).'.</p> Функция: Код (Text): function number_of_people($quotes=''){ $quotes[] = '1 человек'; $quotes[] = '2 человека'; $quotes[] = '3 человека'; $quotes[] = '4 человека'; $quotes[] = '5 человек'; srand ((double) microtime() * 1000000); $random_number = rand(0,count($quotes)-1); return ($quotes[$random_number]); } Помогите, что изменить или добавить, чтобы ошибка не возникала?
Ну как минимум лучше так $quotes = [] Хотя проблема здесь скорее всего здесь. Нужно инициализировать переменную Если совсем лень можно например так Код (Text): number_of_people($quotes['random_number'] ?? [])
Помогло, большое спасибо!!! Но в другом месте возникает ошибка: Undefined offset: 1 in /***/***.php on line 2 где находится на мой взгляд безобидное: Код (Text): $action = $url_part['1']; Пожалуйста, подскажите с чем это может быть связано?
Практически точно такая же ошибка. Не инициализированная переменная Код (Text): $action = $url_part['1'] ?? ''; Хотя не факт... что прокатит. Вообщем суть в том что в переменной $url_part нету индекса '1'
Обнаружил еще предупреждение: Warning: A non-numeric value encountered in Код (Text): $gifts_summ += $gifts['price']; в части кода: Код (Text): if ($db->num_rows($query_gifts)){ while ($gifts = $db->fetch($query_gifts)){ $gifts['price'] = (ceil($rate*$gifts['price']/100)); $gifts_list .= "<div id=\"gift{$gifts['id']}\">{$gifts['name']} ({$gifts['price']} руб.) <a href=\"#\" onclick=\"javascript:remGift('{$gifts['id']}'); return false;\">удалить</a><input type=\"hidden\" name=\"gift[]\" value=\"{$gifts['id']}\"></div>"; $gifts_list_mail .= "{$gifts['name']} ({$gifts['price']} руб.)<br />"; $gifts_summ += $gifts['price']; } }
У тебя не правильно инициализированы переменные например вместо $gifts_summ = 0 стоит $gifts_summ = '' или совсем ничего тогда ?? 'дефолтное значение' или исправь или сведи к int Код (Text): $gifts_summ = intval($gifts_summ); $gifts['price'] = intval($gifts['price']); $gifts_summ += $gifts['price']; Вообщем все твои ошибки в том что нужно где то задавать значения переменной перед тем как ты ее используешь. И смотреть на ее тип если массив значит массив если число значит число.
Тогда смысл теряется. $gifts_summ += $gifts['price'] это тоже самое что $gifts_summ = $gifts_summ + $gifts['price'] (сложение двух чисел). У тебя какая то переменная не число из за этого ошибка. Можно например так. Но в любом случаи это все костыли. Код (Text): $gifts_summ = intval($gifts_summ) + intval($gifts['price']); Ну и за флоат не забывай если нужен хотя там явно рубли)
@nospiou, все понял все работает, огромное спасибо за помощь!!! Воспользовался вариантом: Код (Text): $gifts_summ = intval($gifts_summ) + intval($gifts['price']); И да, правильно - там именно рубли! СПАСИБО!