Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

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

 

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

 

       // Фильтр по 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 );
       }

?

Опубликовано:
  • Автор

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

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

Опубликовано:

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

Опубликовано:
  • Автор

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

 

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

   [pagination] => 
)

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

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.