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

寻技术 PHP编程 2024年01月25日 59

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


关闭

用微信“扫一扫”