Birçok yönüyle strlen Fonksiyonu - Bloğum

, 09 Nisan, 2016


Prototipi:

int strlen ( string $string )

strlen fonksiyonu aldığı karakter katarının(string) byte sayısını herşey yolunda giderse integer tipiyle geri döndürür, sorunla karşılaşırsa 0 değerini geri döndürür. Buda çeşitli ifadeler yazarak kontroller yapmamızı sağlar. Aşağıdaki örneklerden birinde NULL olan bir değişkeni bu fonksiyona gönderip test etim ve 0 değerini döndürdüm.

Tek parametre alır. Aldığı tam sayı ve noktalı sayıların dahi uzunluğunu da geri döndürebilir. 1 karakterin boyutunu 1 byte ile ifade edebildiğimiz için dolaylı olarak karakter sayısını döndürüyor diyebiliriz. Aldığı diğer tiplerdeki değişkenlere string olarak kast ettiği için sanki karakter katarıymış gibi işler ve değer döndürür.

Byte uzunluğuna değinmişken şuradaki arkadaşın bahsettiği üzere 1 karakteri 1 Byte olmayan diller için(Arapça vs…) bu fonksiyonu kullanmak hayal kırıklığına neden olabilir. Bunun üstesinden gelmemiz için mb_strlen fonksiyonunu kullanmamızı öneriyor. Yada bir başka çözüm olarak utf8_decode fonksiyonunu kullanabileceğimiz söylenmiş…

Bir diğer konu aşağıda bahsettiğim gibi değişkenin değeri NULL olsa da 0, taşıdığı string byte sayısı 0 olsa da 0 döndürüyor olması. Bununla mantıksal ifadelerde başa çıkabilmek için aynı değişkeni is_null() ve isset() gibi fonksiyonlarla mantıksal ve işlemine tabi tutarak desteklememiz gerekebilir.

Birçok kullanım şekli ile strlen fonksiyonunu aşağıda inceleyelim:

Bu php sayfasının çıktısı aşağıdaki gibidir:






  strlen  

  

strlen

int strlen ( string $string )

Aldığı karakter katarının(string) karakter sayısını döndürüyor.

Bir şeyler yolunda gitmez ise 0 değerini döndürür:
Uzunluk 0 olmayabilir! Değişken dökümü:NULL

Bu bir tek satir cikti.
Byte uzunluğu: 23
Bu bir tek satır çıktı.
Byte uzunluğu: 27

Null ve boş karakter katarı ayrımı.
d1 değişkeni NULL olabilir

php  php fonksiyonları  php string fonksiyonları  php string uzunluğu  strlen ne iş yapar  

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.