警告"切换"

时间:2016-02-20 10:01:12

标签: php switch-statement

我遇到了一个小小的警告/错误。

这是错误的: 注意:未定义的索引:第10行的**** / layout / header.php中的la

//select language
if (isset($_GET['la'])) {
$_SESSION['la'] = $_GET['la'];
header('location:'.$_SERVER['PHP_SELF']);
exit();

}
//language
switch ($_SESSION['la']) {
case 'en':
    require('lang/en.php');
break;
case 'it':
    require('lang/it.php');
break;
default:
    require ('lang/en.php');
break;
}

问题出在"开关"。一切正常,但我该如何修复警告? 我试过某种方式,但是我进了球!

1 个答案:

答案 0 :(得分:2)

  

注意:未定义的索引:la

它表示您在未定义的条件下使用的索引。

<强>解决方案

在您的代码中,您缺少启动会话,您需要在顶层启动会话:

session_start(); // add on top.

对于未定义的索引,您需要在默认情况下声明会话索引。

$_SESSION['la'] = "";

修改后的代码:

session_start();
$_SESSION['la'] = "";
if (isset($_GET['la'])) 
{ 
   $_SESSION['la'] = $_GET['la'];    header('location:'.$_SERVER['PHP_SELF']); 
   exit(); 
} 

//language 
switch ($_SESSION['la']) 
{ 
   case 'en': require('lang/en.php'); 
   break; 
   case 'it': require('lang/it.php'); 
   break; 
   default: require('lang/en.php'); 
   break; 
}