Laravel switch case未定义变量

时间:2018-02-08 05:26:11

标签: laravel laravel-5

这是我目前的观看代码。我不知道我的代码有什么问题。

<?php

switch($_POST['selected']){
case 'option1':

break;
case 'option2':

case 'option3':

break;
default:

}
?>


<select name="selected">
 <option value="option1">hello world</option>
 <option value="option2">hello friend</option>
 <option value="option3">hello programming</option>
</select>

我收到此错误:

Error

2 个答案:

答案 0 :(得分:0)

在PHP中,从未设置的变量或数组元素与值为null的变量或数组元素不同,尝试访问此类未设置值会导致运行时错误。

这就是你遇到的:数组$ _POST在索引“选中”时没有任何元素,因此解释器在进入无效测试之前中止你的程序。

幸运的是,您可以测试变量或数组元素的存在,而无需实际尝试访问它;这就是特殊运算符isset的作用:

更改:

switch($_POST['selected'])

switch(isset($_POST['selected']))

答案 1 :(得分:0)

我发现您的代码有两个问题。

  1. 一个就是你在交换机情况下使用POST变量,所以你应该在if条件下让这个switch case代码只在提交了$ _POST [&#39; selected]时执行。

    if(isset($_POST['selected'])){
       //complete switch case code
    }
    
  2. 我发现的第二个问题是你没有打破案件&#39; option2&#39;: [第二个问题可以跳过,但你应该遵循标准做法] 希望它有所帮助!