Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
TemKa_SD

Правильное условие в выборке?

Рекомендованные сообщения

Здравствуйте.

 

Есть вот такой фильтр:

 

       // Фильтр по 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 - буду прелестниваться они оба вместе, и первое и второе, что я не так понимаю?

Поделиться сообщением


Ссылка на сообщение
я писал через OR, почему оно через OR не работает, а AND работает, ведь звучит оно так: Если выбран $ActiveGamesWidgetBots и (не выбран \IPS\Request::i()->botId ИЛИ не выбран \IPS\Request::i()->cookie['runningGames_botIds'] ) условие выполняется.

 

Ведь если здесь будет AND - буду прелестниваться они оба вместе, и первое и второе, что я не так понимаю?

При каких условиях не работает?

Поделиться сообщением


Ссылка на сообщение
if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) OR !isset( \IPS\Request::i()->cookie['runningGames_botIds'] )) )

Поделиться сообщением


Ссылка на сообщение

Это и так понятно.

 

Я имел ввиду

$ActiveGamesWidgetBots - ?

\IPS\Request::i()->botId - ?

\IPS\Request::i()->cookie['runningGames_botIds'] - ?

Поделиться сообщением


Ссылка на сообщение
\IPS\Request::i()->botId

Поделиться сообщением


Ссылка на сообщение
\IPS\Request::i()->botId
Какие переменные установлены и какие имеют значения, при которых не выполняется условие?

Поделиться сообщением


Ссылка на сообщение

Не работает:

 

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 );
       }

Поделиться сообщением


Ссылка на сообщение

Что я тут должен увидеть, если значения переменных мне не известны, кроме \IPS\Request::i()->botId?

К тому же Вы уверены что отрабатывает условие с AND, а не

        if ( isset( \IPS\Request::i()->botId ) )
       {
           $ids = explode( ',', \IPS\Request::i()->botId );
       }

?

Поделиться сообщением


Ссылка на сообщение
02/24/19 09:33 (изменено)

Код показываем текстом.

Изменено пользователем siv1987

Поделиться сообщением


Ссылка на сообщение

@TemKa_SD, неужели нельзя две строчки кода показать текстом а не скриншотом? Сколько можно об этом говорить, изучать код по десяти скришотам а еще когда его нужно процетировать жутко не удобное занятие.

Поделиться сообщением


Ссылка на сообщение
02/24/19 15:18 (изменено)

Я показываю код текстом, пожалуйста, текстом что вы удалили:

 

Array
(
   [games] => Array
       (
           [ActiveGamesWidgetBots] => *
           [\IPS\Request::i()->botId] => 6
       )

   [pagination] => 
)

Изменено пользователем TemKa_SD

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...