Вложенные условия IF с несколькими логическими операторами (И, ИЛИ) - PullRequest
0 голосов
/ 19 мая 2018

Это мой первый вопрос по stackoverflow, и, надеюсь, кому-то, кроме меня, понадобится такой код.

Код, который я написал, работает нормально, но я хотел бы знать, как его можно улучшитьили если есть лучший способ достичь того же результата.

// Do NOT include files for '404' and pages 'abc' or 'def' with slug '123'
if (  $pageName !== '404'  ) 
{ 

    if (( $pageName == 'abc' ) && ( $pageSlug == '123' ) 
             OR ( $pageName == 'def' ) && ( $pageSlug == '123' )) {

        return NULL;

    }

    else {

        // include file
        require_once ( '/file.php' );

        // Do NOT include for page 'def'
        if ( $pageName !== 'def' ) {

            // include file
            require_once ( file_2.php' );

        }

    }

};

1 Ответ

0 голосов
/ 19 мая 2018

Поскольку вы уже находитесь в функции, вы можете сократить некоторые из ваших вложений с немедленным возвратом на 404. Кроме того, в остальном нет необходимости из-за 'return NULL', и я думаю, что вам придется разбить ваш if.или в 2 if делает его более читабельным:

function your_func_name($pageName, $pageSlug) {
   if ( $pageName == '404' ) {
       return;
   }

   if ( $pageName == 'abc' && $pageSlug == '123' ) {
      return NULL;
   }

   if ( $pageName == 'def' && $pageSlug == '123' ) {
      return NULL;
   }

   // include file
   require_once ( '/file.php' );

   // Do NOT include for page 'def'
   if ( $pageName !== 'def' ) {
      // include file
      require_once ( 'file_2.php' );
   }
}
...