如何解决php的未定义索引

发布时间:2020-07-16 15:15:17 作者:Leah
来源:亿速云 阅读:547

今天就跟大家聊聊有关如何解决php的未定义索引,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

通常出现未定义的索引问题是由于数组没有这个值造成的,数组分为关联数组和索引数组,索引数组是数字下标;关联数组是键值下标。

$POST['id']之所以报未定义索引是因为$POST这个数组里没有包含下标键值为id的值。

解决办法:

判断数组中是否包含下标键值为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的未定义索引有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. 使用未定义的 struct “timeval” 解决方案
  2. 使用未定义的 struct“timespec” 解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:$(this) dom对象错误的问题

下一篇:web.xml 配置详解

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》