Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I'm getting this error while running my app:

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

I am Using CodeIgniter Version : V4.1.8 PHP Version : 8.1.2, full error output below:

{"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>

Code

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); 
}
like image 660
Asarudin A Avatar asked Nov 27 '25 00:11

Asarudin A


1 Answers

Using a ternary operator will fix this error.

Before Codeigniter existing code:

$output = str_replace(array('{elapsed_time}', '{memory_usage}'), array($elapsed, $memory), $output);

After Using Ternary Operator:

$output = $output ? str_replace(array('{elapsed_time}', '{memory_usage}'), array($elapsed, $memory), $output): "";
like image 181
Akampa Darlington Avatar answered Nov 28 '25 13:11

Akampa Darlington