php出现Warning:Illegal string offset分析处理

1、缺少 isset 而出现警告。当访问未定义变量时,PHP 会产生警告;
empty() 或者 isset() 判断变量是否定义

$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){
 
    ......
 
}
......

改成:

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();
 
    }

2、在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);,毕竟不能因为一个错误关闭所有的错误警告。

3、有关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造成的,希望以上方法对你有所帮助。


发布日期:

所属分类: Php 标签:  



下一篇:

没有了,已经是最新文章