php if-statement оператор против списка, нужна помощь в оптимизации

#php #if-statement

#php #if-statement

Вопрос:

Итак, я пытаюсь собрать небольшую облегченную платформу для некоторых базовых сайтов, которые я создаю для своих клиентов хостинга, и я пытаюсь обратиться к index.php различные включает.

Я разобрался с этим, но чувствую, что должен быть лучший способ написать следующий оператор if:

 <?php
        if('home'==$currentpage)
        {
        include('shared/footer.htm');
        }   
        elseif('testing'==$currentpage)
        {
        include('shared/footer.htm');
        }
        elseif('training'==$currentpage)
        {
        include('shared/footer.htm');
        }
        elseif('contact'==$currentpage)
        {
        include('shared/footer.htm');
        }
        elseif('pricing'==$currentpage)
        {
        include('shared/footer.htm');
        }
    ?>
  

Я получил следующее для работы, оно использует любой последний элемент в списке:

 $arr = array('home', 'testing', 'training', 'contact');
        foreach ($arr as amp;$value);

        if ($value==$currentpage)
        {
        include('shared/footer.htm');
        }
  

Этот будет отображать footer.htm на странице контактов, но ни на одной из других, если я переключу ее, то будет показано, какой элемент заканчивается последним, я также пробовал инструкцию foreach, и она прерывает страницу, поэтому я отказался от нее и решил, что попрошу небольшой помощи.

Заранее спасибо.

Ответ №1:

 $arr = array('home', 'testing', 'training', 'contact','pricing');
if (in_array($currentpage,$arr))
{
   include('shared/footer.htm');
}
  

Ответ №2:

вы можете использовать простой список массивов:

 $arrPage = array(
 'home' => 'shared/footer.htm',
 'testing' => 'shared/footer.htm',
 'training' => 'shared/footer.htm',
 'contact' => 'shared/footer.htm',
 'pricing' => 'shared/footer.htm',
);
if( array_key_exists( $arrPage, $currentPage ))
    include($arrPage[$currentpage]);
  

Ответ №3:

У вас может быть карта, а затем использовать ее для вызова правильной страницы. Вы можете удалить пути, если у вас нет отличающихся путей к вашим файлам. Я предполагаю, что это опечатка.

 $pages = array(
   'home' => 'shared/footer.htm',
   'testing' => 'shared/footer.htm',
   'training' => 'shared/footer.htm'
); //and so forth

if (isset($pages[$currentpage])) {
    include($pages[$currentpage]);
} else {
   //show default page
}