• 15-06-2020, 00:17:50
    #1
    Aslında karşılaştığım sorunu çözdüm fakat aklıma takılan bir nokta var. Birisi bana aşağıdaki kodun neden böyle bir çıktı verdiğini açıklayabilir mi?
    $r = 'x';
    $y = 0;
    
    if ($r == $y) {
    echo 'Eşitler';
    } else
        echo 'Eşit değiller';
    
    // Çıktı: Eşitler
  • 15-06-2020, 00:19:36
    #2
    Else in parantezleri yok.
  • 15-06-2020, 00:22:14
    #3
    blap adlı üyeden alıntı: mesajı görüntüle
    Else in parantezleri yok.
    Yok hocam onunla alakalı bir durum değil, koşuldan sonraki tek satırlık kodlarda parantez koyulmasa da olur.
  • 15-06-2020, 00:23:48
    #4
    String ve sayısal değer karşılaştırıyorsunuz. Tip kontrolü için "===" 3 eşittir kullanmanız gerekiyor.
  • 15-06-2020, 00:27:34
    #5
    sercanarga adlı üyeden alıntı: mesajı görüntüle
    String ve sayısal değer karşılaştırıyorsunuz. Tip kontrolü için "===" 3 eşittir kullanmanız gerekiyor.
    Aynen sorunu tam olarak bu denklik operatörü ile çözdüm fakat bu durum sadece 0 integer halinde oluşuyor, diğer integer sayılar için else bloğuna giriyor. Acaba buradaki sıfırı false gibi bir şekilde mi algılıyor, öyle olsa bile yine acayip bir durum var. Neresinden düşündüysem bulamadım
  • 15-06-2020, 00:28:39
    #6
    Abdullahx adlı üyeden alıntı: mesajı görüntüle
    Acaba buradaki sıfırı false gibi bir şekilde mi algılıyor
    Tam olarak öyle. 0 == false
  • 15-06-2020, 00:30:16
    #7
    Merhaba hocam, öncelikle buradaki kaynağı inceleyebilirsiniz; ilgili kısım ise:
    " 'a string' == 0 also evaluates to true because any string is converted into an integer when compared with an integer. If PHP can't properly convert the string then it is evaluated as 0. So 0 is equal to 0, which equates as true."
    çevirisi:
    "'a string' == 0 da true olarak değerlendirilir, çünkü herhangi bir dize bir tamsayı ile karşılaştırıldığında bir tamsayıya dönüştürülür. PHP dizeyi düzgün bir şekilde dönüştüremezse 0 olarak değerlendirilir. Yani 0, 0'a eşittir, bu da true anlamına geldiği için if bloğu çalışır."
  • 15-06-2020, 00:31:12
    #8
    0'ı parantez içine al dene
  • 15-06-2020, 00:35:24
    #9
    Yazdığınız kod bunla eş değer
    <?php
    $r = 'x';
    $y =0;

    if ($r) {
    echo 'Eşitler';
    } else
    echo 'Eşit değiller';

    Yani $y=0 demek true demek. O yüzden eşitler çıkıyor