i assume you can also use the ! (not) operator
<?php
if (!strncasecmp($string, 'Trudeau', 4)){
print "true";
}
?>
since booleans in PHP translate 0 to FALSE and any other integer to TRUE.
!0 = !false = true
!1 = !true = false
!-1 = !true = false
strncasecmp
(PHP 4 >= 4.0.2, PHP 5)
strncasecmp — İlk n karakteri ikil ve harf büyüklüğüne duyarsız olarak karşılaştırır
Açıklama
int strncasecmp
( string
$d1
, string $d2
, int $uzunluk
)Karşılaştırma için kullanılacak dizge uzunluğunun üst sınırının belirtilebilmesi dışında strcasecmp() işlevi gibidir.
Değiştirgeler
-
d1 -
İlk dizge.
-
d2 -
İkinci dizge.
-
uzunluk -
Karşılaştırmada kullanılacak karakter sayısı.
Dönen Değerler
d1 dizgesi d2 dizgesinden
küçükse sıfırdan küçük bir değer; d1 dizgesi
d2 dizgesinden büyükse sıfırdan büyük bir değer;
d1 dizgesi ile d2 dizgesi
aynıysa sıfır döndürür.
Ayrıca Bakınız
- preg_match() - Bir düzenli ifadeyi eşleştirmeye çalışır
- strcmp() - İkil olarak güvenilir dizge karşılaştırması yapar
- strcasecmp() - İkil olarak güvenilir ve harf büyüklüğüne duyarsız dizge karşılaştırması yapar
- substr() - Dizgenin bir kısmını döndürür
- stristr() - Harf büyüklüğüne duyarsız olarak ilk alt dizgeyi bulur
- strstr() - İlk alt dizgeyi bulur
khootz
27-Nov-2006 08:23
djdykes
31-Aug-2005 03:43
Hi all,
be aware when comparing strings using the strcmp family. if you write code like this...
if (strncasecmp($string, 'Trudeau', 4))
print "true";
The above code returns 1 which evaluates to boolean 'true'
that statement will always be true... because these functions return 0 only when equal. so a better test would be
if ( (strncasecmp($string, 'Trudeau', 4)) == 0)
print "true";
always test these functions equality with 0
regards
