2014-01-20 56 views
-3

我有這個開關的情況下的一個問題,我會很高興,如果有人可以給我什麼錯誤的提示。

下面的行繼續添加以下默認酮(centre_1)殼體1,2或3,而不是取代它。

我找不到它出錯的地方。這裏是代碼:

<?php include("mx/centre_1.php"); 
if(!isset($_GET['page'])) { 
    $page='centre_mx.php'; 
} else { 
    switch($_GET['page']) { 
     case'centre_1': 
      include('/mx/centre_1.php'); 
      break; 
     case'centre_2': 
      include('/mx/centre_2.php'); 
      break; 
     case'centre_3': 
      include('/mx/centre_3.php'); 
      break; 
    } 
} 
?> 

任何幫助將有所幫助。

+0

'isset'會檢查變量是否設置。但它不會檢查空值。所以最好使用'空' –

+4

再次閱讀第一行代碼... –

+0

你想要做什麼? 「替換」它是什麼意思? 「 – Wipqozn

回答

0

總是顯示「/mx/centre_1.php」的原因是因爲你擁有它你的代碼的頂部,如果和switch語句之外。由於這個原因,它會包含在每一頁的加載中。

爲了只有「/mx/centre_1.php」在沒有其他選項被選中,你需要使它默認開關的情況下出現。當沒有其他案件提供的變量相匹配

$page = ''; 
    if(in_array('page', $_GET)) { 
     $page = $_GET['page']; 
    } 

    switch($page) { 
     case 'centre_2': 
      include('/mx/centre_2.php'); 
      break; 
     case 'centre_3': 
      include('/mx/centre_3.php'); 
      break; 
     default: 
      include('/mx/centre_1.php'); 
    } 

在switch語句的默認情況下會發生。也就是說,如果$ _GET ['page']不等於centre_2或centre_3,那麼將執行默認代碼。

我建議你讀了更多的開關語句here,因爲你似乎並不瞭解他們的工作。