TemKa_SD 9 02/23/2019 07:43 PM Здравствуйте. Есть вот такой фильтр: // Фильтр по botid if ( isset( \IPS\Request::i()->botId ) ) { $ids = explode( ',', \IPS\Request::i()->botId ); } else if ( isset( \IPS\Request::i()->cookie['runningGames_botIds'] ) ) { $ids = explode( ',', \IPS\Request::i()->cookie['runningGames_botIds'] ); } if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) AND !isset( \IPS\Request::i()->cookie['runningGames_botIds'] )) ) { $ids = explode( ',', $ActiveGamesWidgetBots ); } Здесь вроде бы всё правильно, меня интересует следующее: if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) AND !isset( \IPS\Request::i()->cookie['runningGames_botIds'] )) ) { $ids = explode( ',', $ActiveGamesWidgetBots ); } $ActiveGamesWidgetBots - переменная отвечает за вывод конфигурации из виджета, скажите на счет всего условия, оно верно? И у меня второй вопрос, изначально условие (!isset( \IPS\Request::i()->botId ) AND !isset( \IPS\Request::i()->cookie['runningGames_botIds'] )) я писал через OR, почему оно через OR не работает, а AND работает, ведь звучит оно так: Если выбран $ActiveGamesWidgetBots и (не выбран \IPS\Request::i()->botId ИЛИ не выбран \IPS\Request::i()->cookie['runningGames_botIds'] ) условие выполняется. Ведь если здесь будет AND - буду прелестниваться они оба вместе, и первое и второе, что я не так понимаю? Share this post Link to post
newbie 1,722 02/24/2019 07:52 AM я писал через OR, почему оно через OR не работает, а AND работает, ведь звучит оно так: Если выбран $ActiveGamesWidgetBots и (не выбран \IPS\Request::i()->botId ИЛИ не выбран \IPS\Request::i()->cookie['runningGames_botIds'] ) условие выполняется. Ведь если здесь будет AND - буду прелестниваться они оба вместе, и первое и второе, что я не так понимаю? При каких условиях не работает? Share this post Link to post
TemKa_SD 9 02/24/2019 08:32 AM if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) OR !isset( \IPS\Request::i()->cookie['runningGames_botIds'] )) ) Share this post Link to post
newbie 1,722 02/24/2019 08:35 AM Это и так понятно. Я имел ввиду$ActiveGamesWidgetBots - ?\IPS\Request::i()->botId - ?\IPS\Request::i()->cookie['runningGames_botIds'] - ? Share this post Link to post
newbie 1,722 02/24/2019 08:47 AM \IPS\Request::i()->botIdКакие переменные установлены и какие имеют значения, при которых не выполняется условие? Share this post Link to post
TemKa_SD 9 02/24/2019 08:55 AM Не работает: http://prntscr.com/mpcbxe if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) OR !isset( \IPS\Request::i()->cookie['runningGames_botIds'] ) ) ) { $ids = explode( ',', $ActiveGamesWidgetBots ); } Работает: http://prntscr.com/mpccbn if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) AND !isset( \IPS\Request::i()->cookie['runningGames_botIds'] ) ) ) { $ids = explode( ',', $ActiveGamesWidgetBots ); } Share this post Link to post
newbie 1,722 02/24/2019 09:12 AM Что я тут должен увидеть, если значения переменных мне не известны, кроме \IPS\Request::i()->botId?К тому же Вы уверены что отрабатывает условие с AND, а не if ( isset( \IPS\Request::i()->botId ) ) { $ids = explode( ',', \IPS\Request::i()->botId ); }? Share this post Link to post
TemKa_SD 9 02/24/2019 09:33 AM (edited) Код показываем текстом. Edited February 24, 2019 by siv1987 Share this post Link to post
siv1987 2,628 02/24/2019 02:28 PM @TemKa_SD, неужели нельзя две строчки кода показать текстом а не скриншотом? Сколько можно об этом говорить, изучать код по десяти скришотам а еще когда его нужно процетировать жутко не удобное занятие. Share this post Link to post
TemKa_SD 9 02/24/2019 03:18 PM (edited) Я показываю код текстом, пожалуйста, текстом что вы удалили: Array ( [games] => Array ( [ActiveGamesWidgetBots] => * [\IPS\Request::i()->botId] => 6 ) [pagination] => ) Edited February 24, 2019 by TemKa_SD Share this post Link to post