За последние 24 часа нас посетил 222691 программист и 2192 робота. Сейчас ищут 1815 программистов ...

switch vs in_array+if+else

Тема в разделе "PHP для новичков", создана пользователем Koc, 17 июл 2008.

  1. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    что лучше:
    PHP:
    1. <?php
    2. switch($do) {
    3.     case "add":
    4.         include'includes/admin/add.php';
    5.     break;
    6.    
    7.     case "list":
    8.         include'includes/admin/list.php';
    9.     break;
    10.    
    11.     case "edit":
    12.         include'includes/admin/edit.php';
    13.     break;
    14.    
    15.     case "delete":
    16.         include'includes/admin/delete.php';
    17.     break;
    18.  
    19.     case "index":
    20.         $tpl->load('index');
    21.         //$tpl->v('header', $header);
    22.         //$tpl->v('footer','подвал');
    23.         $js .= jQueryAdd('jquery-1.2.6.pack');
    24.         //$js .= jQueryAdd('vote');
    25.     break;
    26.    
    27.     default:
    28.         //404
    29.     break;
    30. }
    31. ?>
    или
    PHP:
    1. <?php
    2. $allowedAction = array('add', 'list', 'edit', 'delete');
    3. if(in_array($do, $allowedAction) {
    4.     include'includes/admin/'.$do.'.php';
    5. } elseif ($do=='index') {
    6.     $tpl->load('index');
    7.     //$tpl->v('header', $header);
    8.     //$tpl->v('footer','подвал');
    9.     $js .= jQueryAdd('jquery-1.2.6.pack');
    10.     //$js .= jQueryAdd('vote');
    11. } else {
    12.     //404
    13. ?>
    ?
     
  2. Anonymous

    Anonymous Guest

    я за 2 вариант.
     
  3. Cron

    Cron Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы
    В чем вопрос, я тоже за второй вариант - коротко и ясно. Что еще нужно.
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Вариант #2 рулит!
     
  5. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    окей, так и сделаем
     
  6. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    когда как...
     
  7. Cron

    Cron Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы
    Да, ситуация специфическая. Первый метод гораздо универсальнее, чем второй. а в данном случае почему бы не воспользоваться более коротким и красивым методом. ;)
     
  8. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    вопрос в универсальности тут отпадает. Больше ничего такого добавляться не будет. Все, что дальше - в инклюдах
     
  9. Anonymous

    Anonymous Guest

    Схернали?
    Нука, добавь ка мне динамически еще один разрешенный модуль, например, из БД в первом варианте кода?

    А во втором варианте достаточно пополнить массив $allowed_actions