«

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecate

时间:2024-3-3 10:44     作者:韩俊     分类: PHP


PHP程序界面报错:Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in。

意思是:不推荐使用:str_replace():不推荐将null传递给数组| string类型的参数#3($subject)

前后翻了几遍程序,找到了涉及到的代码段:

function keyword_replace($keyword){
    $search_nohave   = array(",","/", "\\", ".", ";", ":", "\"", "!", "~", "`", "^", "(", ")", "?", "-", "\t", "\n", "'", "<", ">", "\r", "\r\n", "$", "&", "%", "#", "@", "+", "=", "{", "}", "[", "]", ":", ")", "(", ".", "。", ",", "!", ";", "“", "”", "‘", "’", "[", "]", "、", "—", " ", "-", "…");
    foreach ($search_nohave as $search_rep){
        $keyword = str_replace($search_rep,"",$keyword); 
    }
    return $keyword;
}

出现的问题是因为传进来的$keyword变量传为空,所以报错,但这个错误不是致命的不影响程序运行,如果不是强迫症可以忽略。

修改后可以解决问题,主要是判断一下传进来的参数是不是空,代码如下:

function keyword_replace($keyword){
    if ($keyword!=''){
        $search_nohave   = array(",","/", "\\", ".", ";", ":", "\"", "!", "~", "`", "^", "(", ")", "?", "-", "\t", "\n", "'", "<", ">", "\r", "\r\n", "$", "&", "%", "#", "@", "+", "=", "{", "}", "[", "]", ":", ")", "(", ".", "。", ",", "!", ";", "“", "”", "‘", "’", "[", "]", "、", "—", " ", "-", "…");
        foreach ($search_nohave as $search_rep){
            $keyword = str_replace($search_rep,"",$keyword); 
        }
        return $keyword;
    }
}


标签: php php教程

热门推荐