str_replace 识别替换0的问题

$yuceq3Dt['yuceq3']='000000';
$idarr['q3zu3zu6']='038';
$yuceq3_arr = str_split($yuceq3Dt['yuceq3']);
var_dump($yuceq3Dt['yuceq3']);
var_dump($idarr['q3zu3zu6']);
foreach ($yuceq3_arr as $key => $val) {//最近一期中的预测值拆开开始循环0-8
echo '<br><br>';var_dump($val);
if ($val == $idarr['q3zu3zu6'] || !($idarr['q3zu3zu6'] === str_replace($val, '', $idarr['q3zu3zu6']))) {
    echo '<br>'.$val.'-'.$idarr['q3zu3zu6'].'-isok';
}else{
    echo '<br>'.$val.'-'.$idarr['q3zu3zu6'].'-isno';
}
}

的结果是:
string(6) "000000" string(3) "038"

string(1) "0"
0-038-isno

string(1) "0"
0-038-isno

string(1) "0"
0-038-isno

string(1) "0"
0-038-isno

string(1) "0"
0-038-isno

string(1) "0"
0-038-isno

if ($val == $idarr['q3zu3zu6'] || !($idarr['q3zu3zu6'] == str_replace($val, '', $idarr['q3zu3zu6']))) {

改成===:

```if ($val == $idarr['q3zu3zu6'] || !($idarr['q3zu3zu6'] === str_replace($val, '', $idarr['q3zu3zu6']))) {

结果是:

string(6) "000000" string(3) "038"

string(1) "0"
0-038-isok

string(1) "0"
0-038-isok

string(1) "0"
0-038-isok

string(1) "0"
0-038-isok

string(1) "0"
0-038-isok

string(1) "0"
0-038-isok

这是为什么呢?难道是0不被替换?

https://www.cnblogs.com/kakaxi/archive/2011/02/14/1954160.html

0还是会替换, 你可以打印 '38' == '038' 返回的是true, '38' === '038' 返回的是 false,所以你改成全等的时候 返回的是false,走的就是上面的