Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Появляется ошибка когда пытаюсь исполнить код в цикле.

Murad Danilov Профи (830), закрыт 5 лет назад
Вот сам код:

---------------------------------------------

function get_rating( $id = null ) {
$rating = [];
if ( ! empty( $id ) ) {
$xml = simplexml_load_file( 'https://rating.kinopoisk.ru/' . $id . '.xml' );
$names = ['kp_rating', 'imdb_rating'];
foreach ( $names as $name ) {
$new_name = str_replace( '_rating', '', $name );
$rating[ $new_name ] = dom_import_simplexml( $xml->$name )->nodeValue;
}
}

return $rating;
}

// вызов функции
$rating = get_rating(347);

// выводим рейтинг КиноПоиск
echo $rating['kp'];

----------------------------------------

Код работает для одной записи отлично, а вот когда вывожу в цикле для нескольких записей на одной странице выскакивает ошибка.

Fatal error: Cannot redeclare get_rating() (previously declared in /home/users/g/gaaks/domains/site.ru/index.php:162) in /home/users/g/gaaks/domains/site.ru/index.php on line 162

Что с этим делать?
Лучший ответ
Андрей Высший разум (425261) 5 лет назад
Ты умудрился создание функции get_rating засунуть в цикл. В результате на каждой итерации цикла PHP пытается создать НОВУЮ функцию с именем get_rating - о чём тебе прямым английским языком и сообщают.

В цикле должен быть только ВЫЗОВ функции, но никак не её создание.
Murad DanilovПрофи (830) 5 лет назад
А как мне это исправить, слабо знаю php, помощь оплачу.
Андрей Высший разум (425261) Перенести do { ниже по тексту программы. Чтобы function get_rating( $id = null ) { ...} находилось ВНЕ цикла.
Остальные ответы
Сергей Искусственный Интеллект (215368) 5 лет назад
Писать правильно и искать ошибки. Тут нет экстрасенсов. Кто ж знает что ты там в цикле накалякал..
Murad DanilovПрофи (830) 5 лет назад
Простой цикл while, нет ничего кроме этого кода
Сергей Искусственный Интеллект (215368) Ну так цикл без условий и переменных будет бесконечным.
Похожие вопросы