2011-09-21 68 views
-4

我試圖使用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"; 
    } 

} 

爲什麼這段代碼不會回顯「hello」?

+0

爲什麼在'$ _GET'數組中有更多的鍵值?如果你不想要它們,那麼就不要使用它們。 – Eric

+0

這是如何應得的投票? –

+0

可能因爲問題不清楚。爲什麼'$ options'是一個鍵與數值相等的數組? – Eric

回答

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

我會直接爲你解答你的問題。 'Hello'沒有被顯示,因爲它在if語句中並沒有被觸發,因爲「if($ _ GET [$ allowedKeys [0]] & & array_key_exists($ _GET [$ allowedKeys [0]],$ options ))「或」if($ _GET [$ allowedKeys [0]] == $ options [0])「返回false。

相關問題