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 — Бинарно-безопасное сравнение первых n символов строк без учета регистра
Описание
int strncasecmp
( string
$str1
, string $str2
, int $len
)Эта функция подобна strcasecmp(), за исключением того, что можно указать максимальное количество символов в обоих строках, которые будут участвовать в сравнении.
Список параметров
-
str1 -
Первая строка.
-
str2 -
Вторая строка.
-
len -
Количество символов, участвующих в сравнении.
Возвращаемые значения
Возвращает отрицательное число, если str1
меньше, чем str2, положительное число,
если str1 больше, чем str2,
и 0 если строки равны.
Смотрите также
- strncmp() - Бинарно-безопасное сравнение первых n символов строк
- preg_match() - Выполняет проверку на соответствие регулярному выражению
- substr_compare() - Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
- strcasecmp() - Бинарно-безопасное сравнение строк без учета регистра
- stristr() - Регистро-независимый вариант функции strstr
- substr() - Возвращает подстроку
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
