2014-01-20 55 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,因为你似乎并不了解他们的工作。