一般涌现未定义的索引问题是由于数组没有这个值形成的,数组分为关联数组和索引数组,索引数组是数字下标;关联数组是键值下标。
$POST['id']之所以报未定义索引是由于$POST这个数组里没有包括下标键值为id的值。 (引荐进修:PHP视频教程)
处理办法:
推断数组中是不是包括下标键值为id的值,假如没有,则返回错误信息,怎样推断呢,最简朴的要领就是用函数isset来推断,如isset($POST['id']),存在则返回true,反之则为false;
三元推断法,不存在给一个默许的数值, 如 $POST['id'] = isset($POST['id'])?$POST['id']:"1";
当您(或PHP)尝试接见数组的未定义索引时,会涌现此关照。
处理问题的要领:
在接见索引之前搜检索引是不是存在。为此您可以运用isset()或array_key_exists():
//isset()$value = isset($array['my_index']) ? $array['my_index'] : ''; //array_key_exists()$value = array_key_exists('my_index', $array) ? $array['my_index'] : '';
言语组织list()在尝试接见不存在的数组索引时可能会生成此内容:
list($a, $b) = array(0 => 'a');//orlist($one, $two) = explode(',', 'test string');
两个变量用于接见两个数组元素,然则只要一个数组元素index 0,因而这将生成:
注重:未定义的偏移量:1
$_POST/ $_GET/ $_SESSION可变
运用时$_POST,上面的注重事项经常涌现,$_GET或$_SESSION。
关于您而言$_POST,$_GET您只需在运用之前搜检索引是不是存在。由于$_SESSION您必需确保以会话最先session_start()而且索引也存在。
以上就是php的未定义索引怎样处理的细致内容,更多请关注ki4网别的相干文章!