Görünüşe göre PHP'nin ===' operatörü büyük/küçük harfe duyarlı? Yani
strcmp()` kullanmak için herhangi bir neden var mı? Şöyle bir şey yapmak güvenli midir:
if ( $password === $password2 ) { ... }
Bunu kullanmanın nedeni strcmp
str1, str2'den küçükse < 0; str1, str2'den büyükse > 0 ve eşitlerse 0 döndürür.
====sadece
trueveya
false` döndürür, hangisinin "greater" string olduğunu söylemez.
===` kullanmak tehlikeli olabilir.
İkisi farklıysa değişkeni başka bir veri türüne atayacağını unutmayın.
Örnekler:
echo (1 == '1') ? 'true' : 'false';
echo (1 == true) ? 'true' : 'false';
Gördüğünüz gibi, bu ikisi farklı türlerdendir, ancak sonuç true
dur, bu da kodunuzun beklediği şey olmayabilir.
Bununla birlikte, ===
kullanılması önerilir, çünkü testler strcmp()
ve büyük/küçük harf duyarsız alternatifi strcasecmp()
dan biraz daha hızlı olduğunu göstermektedir.
Hızlı bir googlelamayla bu hız karşılaştırmasını bulabilirsiniz: http://snipplr.com/view/758/
Dizeleri lexicographically sıralamak/karşılaştırmak isterseniz strcmp()
kullanabilirsiniz. Eğer sadece eşitlik kontrolü yapmak istiyorsanız ==
yeterlidir.