v2.5.2
Giriş yap

"Deprecated: str_replace(): Passing null to parameter" hatası

coder
275 defa görüntülendi

Herkese merhaba.
Aşağıdaki hatayı alıyorum, sorunu nasıl çözebilirim.

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in

PHP Sürümüm 8.2.13

<?php
$patterns = [
    '{url}' => '([0-9a-zA-Z]+)',
    '{id}' => '([0-9]+)'
];

$url = str_replace(array_keys($patterns), array_values($patterns), $url);

// Şu şekilde denedim ama yine aynı hatayı alıyorum.
$url = $url ? str_replace(array_keys($patterns), array_values($patterns), $url) : "";

tayfunerbilen
291 gün önce

@ebykdrms'de dedigi gibi, artik str_replace'de 2. parametrede null kullanimi kaldirildi, onun yerine bos string olarak degistirirsen problemin cozulecektir.

kisaca projendeki butun su sekilde olan kodlarini:

str_replace($needle, null, $haystack)

soyle degistirmen gerekiyor:

str_replace($needle, '', $haystack)

Gecen PHP'nin yeni surumune gecerken ben de ayni problemi yasadim, uzucu :D eger 3. parti kullandigin class'lar vs. varsa onlarda hata cikarabilir, onlara da bir el atman gerekebilir.