Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
TemKa_SD

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

Recommended Posts

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

 

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

 

       // Фильтр по 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
Share on other sites
я писал через OR, почему оно через OR не работает, а AND работает, ведь звучит оно так: Если выбран $ActiveGamesWidgetBots и (не выбран \IPS\Request::i()->botId ИЛИ не выбран \IPS\Request::i()->cookie['runningGames_botIds'] ) условие выполняется.

 

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

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

Share this post


Link to post
Share on other sites
if ( isset( $ActiveGamesWidgetBots ) AND (!isset( \IPS\Request::i()->botId ) OR !isset( \IPS\Request::i()->cookie['runningGames_botIds'] )) )

Share this post


Link to post
Share on other sites

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

 

Я имел ввиду

$ActiveGamesWidgetBots - ?

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

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

Share this post


Link to post
Share on other sites
\IPS\Request::i()->botId

Share this post


Link to post
Share on other sites
\IPS\Request::i()->botId
Какие переменные установлены и какие имеют значения, при которых не выполняется условие?

Share this post


Link to post
Share on other sites

Не работает:

 

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
Share on other sites

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

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

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

?

Share this post


Link to post
Share on other sites

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

Edited by siv1987

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

   [pagination] => 
)

Edited by TemKa_SD

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...