Lopar
@Lopar
системный администратор

Почему функция работает не так, как задумано?

Есть вырезка из кода:
<?php
function l($link='link0')
{
    $get = urldecode(filter_input(INPUT_SERVER, 'QUERY_STRING'));
    if ($link != $get) echo ' <a class="head" href="?'.$link.'">['.$link.']</a>';
}?>

Some Links:<?= l(), l('link1'), l('link2'), l('link3') ?>

Чего я хочу добиться: Чтобы параметр, который я передал в ссылку пропадал из списка, когда я его выбираю.
Что я имею: Не пропадает.

Работало. Потом как-то незаметно само перестало работать.
Из явных изменений, которые произошли с хостом: php5.6 >> php 7.2.21.

Поверхностно просмотрел ченжлоги, не заметил явных изменений. Что я упускаю?
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
DarthWazer
@DarthWazer
Как спрашивать: https://habr.com/ru/post/460221
Наверное вы в "$get" получаете строку которая никогда не равна ни одному из переданных аргументов.
Проверьте что там у вас в итоге лежит после клика, Ну что бы видеть с чем в итоге сравнивается аргумент.
function l($link='link0')
{
    $get = urldecode(filter_input(INPUT_SERVER, 'QUERY_STRING'));
# = test =
    var_dump($get);
#=======
    if ($link != $get) echo ' <a class="head" href="?'.$link.'">['.$link.']</a>';
}?>

UPD: Да думаю это можно упростить внеся минимальные изменения:
function l($link='link0')
{
    if (! isset($_GET[$link])) echo ' <a class="head" href="?'.$link.'">['.$link.']</a>';
}?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
АКМЭ сервис Санкт-Петербург
от 100 000 руб.
SaveTime Москва
от 100 000 руб.
Teamlead Ставрополь
от 25 000 до 50 000 руб.
07 дек. 2019, в 12:32
34000 руб./за проект
07 дек. 2019, в 12:23
7000 руб./за проект