wordpress错误提示Warning:Illegal string offset分析处理


测速网在开发某款wordpress主题的时候通常是在公司与家里同时开工追进度,在某天操作wordpress程序文件时打开首页突然出现了这样的提示Warning:Illegal string offset,简单测试了一下是因为php环境版本的问题,最后通过本地的环境版本切换最终确定了问题只出现于PHP5.4以上环境。那我们分析下原因和解决办法。

解决方案一
缺少 isset 而出现警告。当访问未定义变量时,PHP 会产生警告;

161718192021222324252627282930313233343536373839$artists = get_artists_all(); foreach ($artists as $artists_id => $artist) { if (isset($_GET["id"])) {$artists_id = $_GET["id"];if(isset($artists["$artists_id"])){$artist = $artists[$artists_id];}}if (!isset($artist)){header("Location:".BASE_URL."artists/");exit();} foreach ($artist as $work) { if (isset($_GET["id"])) {$artist_id = $_GET["id"];if(isset($artist["$artist_id"])){ 在$work = $artist[$artist_id]["id"];}}if (!isset($work)){header("Location:".BASE_URL."artist/");exit(); }} } ......foreach ($artist as $work){ ...... }

改成:

12345678910111213foreach ($artist as $work) { if (isset($_GET["id"])) {$artist_id = $_GET["id"];if(isset($artist["$artist_id"])){$work = $artist[$artist_id]["id"];}}if (!isset($work)){header("Location:".BASE_URL."artist/");exit(); }

解决方案二
在php文件首行加入error_reporting(0);
1、在PHP手册中搜索到函数error_reporting(0);官方解释是Turn off all error reporting,于是把error_reporting(0);加到PHP程序的首行,运行后果然没出现任何错误提示!

2、在php文件的首行加入error_reporting(E_ALL ^ E_NOTICE);,毕竟不能因为一个错误关闭所有的错误警告。

解决方案三
有关error_reporting()函数:
error_reporting(0);//禁用错误报告
error_reporting(E_ALL ^ E_NOTICE);//显示除去 E_NOTICE 之外的所有错误信息
error_reporting(E_ALL^E_WARNING^E_NOTICE);//显示除去E_WARNING E_NOTICE 之外的所有错误信息
error_reporting(E_ERROR | E_WARNING | E_PARSE);//显示运行时错误,与error_reporting(E_ALL ^ E_NOTICE);效果相同。error_reporting(E_ALL);//显示所有错误

以上问题应当是把我们的Php升级大于5.4造成的,希望以上方法对你有所帮助。


上一篇:如何为wordpress页面pages添加seo优化关键词和描述

下一篇:[讲解篇]教你用WordPress制作一组CMS文章栏目列表模块


Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器