php, если $ _GET равен определенному массиву - PullRequest
0 голосов
/ 21 сентября 2011

Я пытаюсь использовать концепцию прерывания, но я также использую некоторые встроенные функции PHP, чтобы разрешить только определенные значения в функции get.

    $allowedKeys = array(
          'route'
);

$options = array(
    'chapter_1' => 'chapter_1',
    'chapter_2' => 'chapter_2',
    'chapter_3' => 'chapter_3'
);

$_GET = array_intersect_key($_GET, array_flip($allowedKeys));

if($_GET[$allowedKeys[0]] && array_key_exists($_GET[$allowedKeys[0]], $options)) {
    if($_GET[$allowedKeys[0]] == $options[0]) {
        /* This is where I'm trying to see if route=chapter_1 then do something.
           The logic I'm trying to write is if the route is chapter_1 then print
           out the content from chapter 1 How can determine this? */

        echo "Hello";
    }

}

Почему этот код не повторяется"привет"?

Ответы [ 2 ]

2 голосов
/ 21 сентября 2011

Зачем делать это сложнее, чем нужно?

//check you have a route
$route = isset( $_GET['route'] ) ? $_GET['route'] : '';

switch( $route ) {
    case 'chapter_1':
        //do chapter one stuff
        echo 'Chapter 1';
        break;
    case 'chapter_2':
        //do chapter two stuff
        echo 'Chapter 2';
        break;
    default:
        echo 'Intro';
}
0 голосов
/ 21 сентября 2011

Я отвечу на ваш вопрос непосредственно для вас.«Hello» не отображается, потому что он находится внутри оператора if, который не запускается, потому что либо «if» ($ _ GET [$ allowKeys [0]] && array_key_exists ($ _ GET [$ allowKeys [0]], $ options)) "или" if ($ _ GET [$ allowKeys [0]] == $ options [0]) "возвращает false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...