За последние 24 часа нас посетили 22399 программистов и 1152 робота. Сейчас ищут 639 программистов ...

Не работает код если сделать его через функцию

Тема в разделе "PHP для новичков", создана пользователем Dasderdas, 14 окт 2022.

  1. Dasderdas

    Dasderdas Новичок

    С нами с:
    29 мар 2022
    Сообщения:
    69
    Симпатии:
    0
    Делал простой поиск так и всё работает:
    PHP:
    1.  if (preg_match("/$search/", $gsp -> associations)) echo($gsp -> GetCard());
    Проверяем есть ли вхождения из поиска в ассоциации для поиска если true - показываем карточку.
    Теперь для простоты пытаюсь сделать так:
    PHP:
    1. function search($card) {
    2.   if (preg_match("/$search/", $card -> associations))
    3.     echo $card -> GetCard();
    4. }
    5.  
    6. search($gsp);
    Если делаю так, то проверка внутри функции вообще не влияет показывается ли карточка или нет, она показывается в любом случае.
    Как фиксить? в чём проблема?
     
    #1 Dasderdas, 14 окт 2022
    Последнее редактирование: 14 окт 2022
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    области видимости переменных

    функция внутри ничего не знает про $serach.... передайте как второй аргумент search($cardб, $search) {
     
    Dasderdas нравится это.
  3. Dasderdas

    Dasderdas Новичок

    С нами с:
    29 мар 2022
    Сообщения:
    69
    Симпатии:
    0
    Спасибо! Вот уж не ожидал, что он не поймёт переменную которая объявляется вне всяких функций. По итогу получается не так минималистично, но работает.
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Основы учим сначала. Это почти везде так.
    --- Добавлено ---
    Про JS промолчу :)
     
    don.bidon нравится это.
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Кстати, в пыхе есть возможность доступа к глоб. переменным (global $var или $GLOBALS['var']), но это лучше использовать для доступа к каким-то предопределенным переменным, если вы не боитесь их затирания или уничтожения. Многие стараются избегать использования глоб. переменных.
     
  6. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    861
    Симпатии:
    132
    использовать в крайнем случае, проблематично покрыть тестами код будет.