php如果$ _GET等于某个数组

时间:2011-09-21 06:57:05

标签: php arrays get

我正在尝试使用break概念,但我也在使用一些内置的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 个答案:

答案 0 :(得分:2)

为什么要让它变得比它需要的更复杂?

//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';
}

答案 1 :(得分:0)

我会直接回答你的问题。 “Hello”没有显示,因为它位于if语句中,因为“if($ _ GET [$ allowedKeys [0]]&& array_key_exists($ _ GET [$ allowedKeys [0]]” $ options))“或”if($ _ GET [$ allowedKeys [0]] == $ options [0])“返回false。