Задать вопрос
dmtrbskkv
@dmtrbskkv
Кодим и декодим, а иногда кино смотрим

Скрипт очень странно себя ведет. Что делать если в условии всё учтено, но выходит совсем не то?

Здраствуй друг. Если ты забрел сюда, то вот код:
case "catalog":
                    $number_of_page = (int)$callback_data[1];
                    $catalog = $parser->catalog();
                    $catalog_count = count($catalog);
                    $catalog = array_slice($catalog,$number_of_page,1);
                    $img = $catalog[0]["img"];
                    $title = $catalog[0]["title"];
                    $link = str_replace(["http://","https://"],"",$catalog[0]["link"]);
                    $next_text = "\xE2\x96\xB6";
                    $prev_text = "\xE2\x97\x80";
                    $next = $number_of_page+1;
                    $prev = $number_of_page-1;
                    $buttons_keys = [
                            ["text" => $prev_text, "callback_data" =>"catalog_".$prev],
                            ["text" => "Подробнее", "url" =>"$link"],
                            ["text" => $next_text, "callback_data" =>"catalog_".$next],
                    ];
                    $i = (int)0;
                    if($number_of_page <= $i){
                        unset($buttons_keys[0]);
                        sort($buttons_keys);
                    }elseif($number_of_page >= ($catalog_count-1)){
                        unset($buttons_keys[2]);
                        sort($buttons_keys);
                    }
                    if($number_of_page != $i){
                        $telegram->deleteMessage([
                            "chat_id" => $callback_chat_id,
                            "message_id" => $callback_message_id,
                        ]);
                    }
                    $buttons = [
                        $buttons_keys,
                    ];
                    $keyboard = json_encode(["inline_keyboard"=>$buttons]);
                    $telegram->sendPhoto([
                        "chat_id" => $callback_chat_id,
                        "photo" => $img,
                        "parse_mode" => "Markdown",
                        "reply_markup" => $keyboard,
                        "caption" => "*$title*",
                    ]);
                    break;


Кстати, $callback_data[1] = 1, а все остальные значения берутся с сайта - всё рабочее.

Проблема в том, что $number_of_page не входит в условия и сообщения не удаляются.
Причем, только при $callback_data[1] = 1 не удаляются. А при 2,3,0 и т.д. - удаляются

А, ну и если важно, то это бот телеграм. Используется своя библиотка. Методы рабочие - проверенно.

Если сие данных достаточно, то подскажите где ошибка. Уже n'e(около часа) кол-во минут сижу и не вижу
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 3
doublench21
@doublench21
if($number_of_page <= $i){ ... }
if($number_of_page != $i){ ... }

Если $number_of_page < $i, то оно зайдет в оба условия. Для вас это нормально?
Ответ написан
daager
@daager
Перед if($number_of_page != $i){ var_dump'ом выведите обе переменные и посмотрите на результат.
Ответ написан
dmtrbskkv
@dmtrbskkv Автор вопроса
Кодим и декодим, а иногда кино смотрим
Тема закрыта. Я слепой и невнимательный сами знаете кто. - забыл дописать одно исключение
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы