• 05-11-2018, 11:39:24
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Selamlar

    <?php
    $a="x";
    echo var_dump($a);
    ?>

    çalıştırdığımızda, türünün string ve atanan değerin x olduğunu ekrana basıyor... buraya kadar güzel.

    string(1) "x"

    Sorum şu: 1 (bir) neyi ifade ediyor?


    Eğer 1 (bir), string içindeki karakter sayısı ise; string değer olarak trans karakter yazdığımda neden farklı sonuç geliyor? Şöyle ki;

    <?php
    $a="ẽ";
    echo var_dump($a);
    ?>

    Sonuç:
    string(3) "ẽ"

    ??
    .
  • 05-11-2018, 11:50:36
    #2
    karakter uzunluğunu ifade eder
    şapkalı e is multi byte karakter o yüzden 3 olarak çktı veriyor.
    aradaki fark tek byte ve multi byte karater olması
  • 05-11-2018, 11:57:45
    #3
    Fikir vermesi açısından; https://stackoverflow.com/questions/...tin-characters
  • 05-11-2018, 12:18:46
    #4
    susmus adlı üyeden alıntı: mesajı görüntüle
    karakter uzunluğunu ifade eder
    şapkalı e is multi byte karakter o yüzden 3 olarak çktı veriyor.
    aradaki fark tek byte ve multi byte karater olması
    Daky adlı üyeden alıntı: mesajı görüntüle
    harikaydı çok teşekkürler... demek ki bu durumda var_dump'da çıkan rakam, uzunluk değil byte... süper, çok teşekkür (aynı şekilde strlen de yanlış biliniyor demek ki)

    .
  • 05-11-2018, 13:57:35
    #5
    bu tarz karakterleri saymak için mb_strlen kullanırsanız tek olarak sayılacaktır. mb_ multi byte karakterlerdeki stringler için kullanılınır