Сравнение строк с использованием == против strcmp - PullRequest
315 голосов
/ 26 июля 2010

Кажется, что оператор PHP === чувствителен к регистру? Так есть ли причина использовать strcmp()? Безопасно ли делать что-то вроде:

if ( $password === $password2 ) { ... }

Ответы [ 12 ]

3 голосов
/ 16 августа 2013

Также функция может помочь в сортировке.Чтобы быть более понятным о сортировке.strcmp () возвращает меньше 0, если строка1 сортирует перед строкой2, больше 0, если строка 2 сортирует перед строкой1 или 0, если они совпадают.Например,

$first_string = "aabo";
$second_string = "aaao";
echo $n = strcmp($first_string,$second_string);

Функция вернет значение больше нуля, так как aaao сортирует перед aabo.

0 голосов
/ 05 ноября 2018

PHP Вместо использования алфавитной сортировки используйте значение символа ASCII для сравнения.Строчные буквы имеют более высокое значение ASCII , чем заглавные.Для сравнения лучше использовать оператор идентификации === . strcmp () - это функция для сравнения безопасных двоичных строк.Он принимает две строки в качестве аргументов и возвращает <0, если str1 меньше, чем str2;> 0, если str1 больше, чем str2, и 0, если они равны.Существует также версия без учета регистра с именем strcasecmp () , которая сначала преобразует строки в строчные, а затем сравнивает их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...