• 技术文章 >后端开发 >PHP问题

    php的未定义索引如何解决

    (*-*)浩(*-*)浩2019-10-12 13:58:15原创5962

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

    $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的未定义索引如何解决的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php
    上一篇:php程序员如何自我介绍? 下一篇:php文件用什么编辑打开?
    PHP编程就业班

    相关文章推荐

    • php框架哪个用的多• PHP_VERSION指什么• php空格怎么打• php.ini在哪

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网