php中出现Notice: Uninitialized string offset: 0原因及解决办法

当使用数组中未定义的key时,就会出现提示Notice: Uninitialized string offset: 0,这句话的意思是你的数组key值越界了 举例来说: 定义的数组是 $arr = array( id =18, name = haha); 如果输出 echo $arr[status]时,就会出现上述提示。 所以输出前先检查

当使用数组中未定义的key时,就会出现提示Notice: Uninitialized string offset: 0,这句话的意思是你的数组key值越界了

举例来说:

定义的数组是    $arr = array( "id" => 18,

                                                 "name" => 'haha' );

如果输出 echo $arr['status'] 时,就会出现上述提示。 

所以输出前先检查下数值是否定义key,如: 

if(isset($arr['status'] ))

    echo $arr['status'] ;

当然也可以选择忽视该提示,将php.ini中error_reporting = E_ALL 改为error_reporting = E_ALL & ~E_NOTICE即可

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

今天在用php进行图片保存输出时候,图片一直显示错误,后面用调试模式下提示:Warning: Cannot modify header information - headers already sent by... 看了一些网上的方法也没解决,最后在php.ini配置output_buffering默认为4096就没有遇到这个错误了: o
ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车/空格/换行/都会有Header had all ready send by的错误,这时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出.当然打开缓冲区的作用很多,只要
第一种方法:用php的strpos() 函数判断字符串中是否包含某字符串的方法 if(strpos(www.genban.org,genban) !== false){ echo 包含genban; }else{ echo 不包含genban; } 第二种 使用了explode 用explode进行判断PHP判断字符串的包含代码如下: ?php $name = 00
/u 表示按unicode(utf-8)匹配(主要针对多字节比如汉字) /i 表示不区分大小写(如果表达式里面有 a, 那么 A 也是匹配对象) /s 表示将字符串视为单行来匹配
随机生成难点是在于如何避免碰撞,有人说用md5,GUID这些机制啊,当然可以,但是做为账号,看着有乱,而且生成位数也过长。 本方法只需要解决1秒内的并发碰撞就可以,因为固定头部采用的是unixtime时间,精确到秒,超过1秒,这个头部的时间肯定变化了。同时
很多时候onclick事件是伴随着页面的跳转,也就会有相应的参数传递案。案例如下所示: a href=# onclick=showTable(this)123/a #为你要跳转的页面 这个时候你传的参数就是123 function showTable(data){ alert(data.innerHTML);//js写法 alert($(data).html()