Делал простой поиск так и всё работает: PHP: if (preg_match("/$search/", $gsp -> associations)) echo($gsp -> GetCard()); Проверяем есть ли вхождения из поиска в ассоциации для поиска если true - показываем карточку. Теперь для простоты пытаюсь сделать так: PHP: function search($card) { if (preg_match("/$search/", $card -> associations)) echo $card -> GetCard(); } search($gsp); Если делаю так, то проверка внутри функции вообще не влияет показывается ли карточка или нет, она показывается в любом случае. Как фиксить? в чём проблема?
области видимости переменных функция внутри ничего не знает про $serach.... передайте как второй аргумент search($cardб, $search) {
Спасибо! Вот уж не ожидал, что он не поймёт переменную которая объявляется вне всяких функций. По итогу получается не так минималистично, но работает.
Кстати, в пыхе есть возможность доступа к глоб. переменным (global $var или $GLOBALS['var']), но это лучше использовать для доступа к каким-то предопределенным переменным, если вы не боитесь их затирания или уничтожения. Многие стараются избегать использования глоб. переменных.