这是我目前的观看代码。我不知道我的代码有什么问题。
<?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>
我收到此错误:
答案 0 :(得分:0)
在PHP中,从未设置的变量或数组元素与值为null的变量或数组元素不同,尝试访问此类未设置值会导致运行时错误。
这就是你遇到的:数组$ _POST在索引“选中”时没有任何元素,因此解释器在进入无效测试之前中止你的程序。
幸运的是,您可以测试变量或数组元素的存在,而无需实际尝试访问它;这就是特殊运算符isset的作用:
更改:强>
switch($_POST['selected'])
要强>
switch(isset($_POST['selected']))
答案 1 :(得分:0)
我发现您的代码有两个问题。
一个就是你在交换机情况下使用POST变量,所以你应该在if条件下让这个switch case代码只在提交了$ _POST [&#39; selected]时执行。
if(isset($_POST['selected'])){
//complete switch case code
}
我发现的第二个问题是你没有打破案件&#39; option2&#39;: [第二个问题可以跳过,但你应该遵循标准做法] 希望它有所帮助!