PHP str_replace():不推荐将 null 传递给数组|字符串类型的参数 #3 ($subject)
PHP str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated
亲爱的,我在 运行 我的应用程序中遇到此错误。
下面我附上了显示错误的代码的图像文件
{"data":[
["omron","<span class=\"label label-success\">Active<\/span>",
"<button type=\"button\" class=\"btn btn-default\" onclick=\"editBrand(4)\" data-toggle=\"modal\" data-target=\"#editBrandModal\"><i class=\"fa fa-pencil\"><\/i><\/button> <button type=\"button\" class=\"btn btn-default\" onclick=\"removeBrand(4)\" data-toggle=\"modal\" data-target=\"#removeBrandModal\"><i class=\"fa fa-trash\"><\/i><\/button>\n\t\t\t\t"]
]
}
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: 8192</p>
<p>Message: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated</p>
<p>Filename: core/Output.php</p>
<p>Line Number: 457</p>
<p>Backtrace:</p>
更新:代码
if ($this->parse_exec_vars === TRUE)
{
$memory = round(memory_get_usage() / 1024 / 1024, 2).'MB';
// below is line 457
$output = str_replace(array('{elapsed_time}', '{memory_usage}'), array($elapsed, $memory), $output);
}
我遇到过这样的错误
这是消除错误的唯一方法。你 PHP 7 & 8 安装你的系统
php 安装在 c/:xampp & c/:xampp2 安装。
因为 difrant drive in error occuerd
和
在其他项目中受益
我已将 CI 版本降级到 3,PHP 版本降级到 7.3
现在可以使用了
如果您没有加载任何视图,就会显示此错误消息。 Codeigniter 的内部输出缓冲区从未初始化,因此为 null
。输出缓冲区是 str_replace()
的第三个参数。可能有其他方式触发此错误消息。
您可能想在某个时候加载有效视图。
PHP 7 及更低版本只会忽略缺少的参数,而 PHP 8+ 会显示警告。它也可能因您的环境/调试设置而异。
使用三元运算符。
在 Codeigniter 之前现有代码:
$output = str_replace(array('{elapsed_time}', '{memory_usage}'), array($elapsed, $memory), $output);
希望它能正常工作。
使用三元运算符后:
$output = $output ? str_replace(array('{elapsed_time}', '{memory_usage}'), array($elapsed, $memory), $output): "";
另一种选择是检查现有 if 语句中的 $output。这将跳过 $output 为 NULL 或空时不需要的整个代码块。
if ($this->parse_exec_vars === TRUE && !empty($output))
{
$memory = round(memory_get_usage() / 1024 / 1024, 2).'MB';
// below is line 457
$output = str_replace(array('{elapsed_time}', '{memory_usage}'), array($elapsed, $memory), $output);
}
亲爱的,我在 运行 我的应用程序中遇到此错误。
下面我附上了显示错误的代码的图像文件
{"data":[
["omron","<span class=\"label label-success\">Active<\/span>",
"<button type=\"button\" class=\"btn btn-default\" onclick=\"editBrand(4)\" data-toggle=\"modal\" data-target=\"#editBrandModal\"><i class=\"fa fa-pencil\"><\/i><\/button> <button type=\"button\" class=\"btn btn-default\" onclick=\"removeBrand(4)\" data-toggle=\"modal\" data-target=\"#removeBrandModal\"><i class=\"fa fa-trash\"><\/i><\/button>\n\t\t\t\t"]
]
}
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: 8192</p>
<p>Message: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated</p>
<p>Filename: core/Output.php</p>
<p>Line Number: 457</p>
<p>Backtrace:</p>
更新:代码
if ($this->parse_exec_vars === TRUE)
{
$memory = round(memory_get_usage() / 1024 / 1024, 2).'MB';
// below is line 457
$output = str_replace(array('{elapsed_time}', '{memory_usage}'), array($elapsed, $memory), $output);
}
我遇到过这样的错误
这是消除错误的唯一方法。你 PHP 7 & 8 安装你的系统
php 安装在 c/:xampp & c/:xampp2 安装。 因为 difrant drive in error occuerd
和
在其他项目中受益
我已将 CI 版本降级到 3,PHP 版本降级到 7.3
现在可以使用了
如果您没有加载任何视图,就会显示此错误消息。 Codeigniter 的内部输出缓冲区从未初始化,因此为 null
。输出缓冲区是 str_replace()
的第三个参数。可能有其他方式触发此错误消息。
您可能想在某个时候加载有效视图。
PHP 7 及更低版本只会忽略缺少的参数,而 PHP 8+ 会显示警告。它也可能因您的环境/调试设置而异。
使用三元运算符。
在 Codeigniter 之前现有代码:
$output = str_replace(array('{elapsed_time}', '{memory_usage}'), array($elapsed, $memory), $output);
希望它能正常工作。
使用三元运算符后:
$output = $output ? str_replace(array('{elapsed_time}', '{memory_usage}'), array($elapsed, $memory), $output): "";
另一种选择是检查现有 if 语句中的 $output。这将跳过 $output 为 NULL 或空时不需要的整个代码块。
if ($this->parse_exec_vars === TRUE && !empty($output))
{
$memory = round(memory_get_usage() / 1024 / 1024, 2).'MB';
// below is line 457
$output = str_replace(array('{elapsed_time}', '{memory_usage}'), array($elapsed, $memory), $output);
}