CakePHP str_replace错误?

zfciruhq  于 6个月前  发布在  PHP
关注(0)|答案(1)|浏览(60)

我试图在本地主机环境中设置我的CakePHP项目,但我得到了这个错误:

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in C:\xampp\htdocs\Bakesystem\vendor\cakephp\cakephp\src\Utility\Text.php on line 232

字符串
str_replace():将null传递给类型数组的参数#2($replace)|会话信息:SESSION_ID = bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
str_replace():将null传递给类型数组的参数#2($replace)|会话信息:SESSION_ID = bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
str_replace():将null传递给类型数组的参数#2($replace)|会话信息:SESSION_ID = bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
str_replace():将null传递给类型数组的参数#2($replace)|会话信息:SESSION_ID = bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
然后我得到了大概30个这样的错误。。
在所有这些错误被打印出来后,其余的显示正常。我显然可以关闭错误并继续运行,但如果可能的话,我想修复错误。
有没有人能告诉我任何可能对我有帮助的东西?我有点迷失了,我怎么能调试和解决这个问题...

x8goxv8g

x8goxv8g1#

php变得越来越严格。这不是CakePHP的问题。你的问题是基于将null传递给一个不再接受null的函数。通常这些问题可以通过在调用函数之前进行null检查来解决,比如:

if ($search !== null && $replace !== null && $subject !== null) {
     str_replace($search, $replace, $subject);
 }

字符串
或者,如果它是一个字符串或null,则转换为字符串:

str_replace((string)$search, (string)$replace, (string)$subject);


当然,如果你知道它不能为null,你可以跳过强制转换或null检查。

相关问题