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 — Binary safe case-insensitive string comparison of the first n characters
Description
int strncasecmp
( string
$str1
, string $str2
, int $len
)This function is similar to strcasecmp(), with the difference that you can specify the (upper limit of the) number of characters from each string to be used in the comparison.
Parameters
-
str1 -
The first string.
-
str2 -
The second string.
-
len -
The length of strings to be used in the comparison.
Return Values
Returns < 0 if str1 is less than
str2; > 0 if str1 is
greater than str2, and 0 if they are equal.
See Also
- strncmp() - Binary safe string comparison of the first n characters
- preg_match() - Perform a regular expression match
- substr_compare() - Binary safe comparison of two strings from an offset, up to length characters
- strcasecmp() - Binary safe case-insensitive string comparison
- stristr() - Case-insensitive strstr
- substr() - Return part of a string
khootz ¶
6 years ago
djdykes ¶
7 years ago
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
