Php 警告";开关";

Php 警告";开关";,php,switch-statement,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

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

这就是错误: 注意:第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;
}
问题出在“开关”上。这一切都是可行的,但我如何修复警告? 我试过一些方法,但我进入了球

注意:未定义索引: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; 
}

@maxhb如果条件为真,则此项将覆盖。@maxhb如果你不阅读我的评论:pYes,删除了评论,可能我还是有点困;-)@没有问题,兄弟。。如果你有任何建议,你也可以编辑我的答案。谢谢你的帮助,我的通知会消失,但不会改变语言。