可能重复:
PHP: “Notice: Undefined variable” and “Notice: Undefined index”
这很奇怪,但我使用$ _POST方法发布输入,如下所示:
$c = count($_POST['gridValues']);
但问题是我收到错误声明:
注意:未定义的索引:第40行/web/stud/..../中的gridValues (这是上面的行)
为什么我收到此错误,因为$ _POST方法肯定是正确的?
以下是整个代码:
<?php
ini_set('session.gc_maxlifetime',12*60*60);
ini_set('session.gc_divisor', '1');
ini_set('session.gc_probability', '1');
ini_set('session.cookie_lifetime', '0');
require_once 'init.php';
ini_set('display_errors',1);
error_reporting(E_ALL);
session_start();
?>
$i = 0;
$c = count($_POST['gridValues']);
for($i = 0; $i < $c; $i++ ){
switch ($_POST['gridValues'][$i]){
case "3":
$selected_option = "A-C";
break;
case "4":
$selected_option = "A-D";
break;
case "5":
$selected_option = "A-E";
break;
}
}
答案 0 :(得分:2)
您需要检查是否先设置:
<?php
if(isset($_POST['gridValues'])) {
$c = count($_POST['gridValues']);
}
?>
答案 1 :(得分:0)
有几种方法可以阻止有关未定义变量的通知级别消息。
将@放在变量前面。例如:$c = @$_POST['gridValues']
这可能很危险,因为您明确告诉它忽略变量的任何问题。有关@:http://php.net/manual/en/language.operators.errorcontrol.php
关闭(或更改)错误报告。例如:ini_set('display_errors', 0);
在使用之前检查变量是否已定义。例如:
$c = '';
if(!empty($_POST['gridValues'])){
$c = count($_POST['gridValues']);
}