PHP Versiyon 7,3 ve 7,4 Geçişinde Bool : False Sorunu
hatamız : trying to access array offset on value of type bool
php sürüm : 7.4
$baslik = "a";
$dede = "b";
$res = $baslik == $dede ? $baslik : null ;
şimdi $res= null; dönmesi gerekmiyormu ?
veya
$dede = "a"; ise $res = "a"; dönmesi gerekmiyormu ?
//bu şekilde oluyor ama niye if elseye ihtiyaç duyalim
if(isset($baslik) == $dede){
$res = $baslik;
}else{
$res = $dede;
}
// sql sorgusunda gelen değer false düştüğü için hata veriyor anlıyorum fakat
// 7,3 de true düşen 7,4 de niye false düşüyor.
$s = $db->prepare("SELECT * FROM tablo WHERE id=?");
$s->execute([$_GET["id"]]);
$ss = $s->fetch(2);
echo $ss["baslik"];
//7,3 de true 7,4 de false düşüyor $ss neden?
//birde söyle geçebiliyoruz
isset($baslik) ?? null;
7,3 versiyonda hiç bir sorun olmuyorken bu lanet 7,4 de neden böyle yaparki :)
burda asıl merak ettiğim 2 versiyon arasında nasıl bir fark varki
birinde true diğerinde false?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Bi çok sürümde TRUE FALSE değerlendirmesi ve bazı şeyler değişti.
Bu sürümlere 7.4 de dahil.
Koşulunda parantez kullanarak yorumlama farkını ortadan kaldırabilirsin.