@Bodya_idiot

Почему return не возвращает значение переменной?

Короче я написал функцию, которая c помощю парсинга определяет сколько страниц с ресторанами на сайте, причем фунция работает исправно, я проверял каждую её итерацию и все работает, но как только доходит дело до IF и оно выполняется, там стоит return $max, но при этом значение переменной он не возвращает, помогите плиз, сижу уже над этой функцией 2-ий день
<?php
$page = 0;

function GetMaxPage($page) // C помощью этой фунции я узнаю какая макс. страничка на сайте с ресторанами
{
    $subject = file_get_contents('https://restoran.kz/restaurant?page=' . $page);
    $pattern = '/<a.+?href="(\/restaurant\?page=[0-9]+){0,1}(.{0,10}){0,1}">([0-9]+)<\/a>/u';
    $result = [];
    preg_match_all($pattern, $subject, $result);

    $max = max($result[3]); // Присваиваю макс значение с массива result
    if ($page == $max) {
        return $max;  // Вот тут и проблема, он не возвращает значение, а если там написать echo то он исправно выводит
    } else {
        $page = $max;
        GetMaxPage($page); 
    }
}
$MaxPage = GetMaxPage($page);
echo $MaxPage;
  • Вопрос задан
  • 84 просмотра
Решения вопроса 2
rpsv
@rpsv
делай либо хорошо, либо никак
Потому что у вас только 1 return, для второго условия тоже нужно выводить:
if ($page == $max) {
    return $max;
} else {
    $page = $max;
    return GetMaxPage($page); // тут добавлен return
}
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
5eb1935c029ad114391960.jpeg
тут не хватает ретурна. Почему - сами догадаетесь или надо объяснять?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы