PHP strcmp не работает - PullRequest
0 голосов
/ 27 июня 2018

в моем коде я хотел сравнить две строки, и сначала я сделал это с ===, но позже я попробовал strcmp (). Когда я пишу:

echo strcmp("test","test");

результат был 0. Я тоже пробовал с ===

echo ($subject === $empty)

там я использовал свои настоящие строки, которые хотел сравнить.

Тем не менее. Почему метод сравнения строк имеет значение True только если строка zweo не совпадает. Потому что:

echo strcmp("test","tedddst");

доставляет True.

Ответы [ 3 ]

0 голосов
/ 27 июня 2018
strcmp 

Согласно документации это двоичное безопасное сравнение строк.

int strcmp ( string $str1 , string $str2 );

Возвращает <0, если str1 меньше, чем str2; > 0, если str1 больше, чем str2, и 0, если они равны.

=== вернет true или false

0 голосов
/ 27 июня 2018

strcmp Функция сравнивает заданные строки и возвращает число, а не логическое значение.

В последнем примере возвращаемое значение отличается от 0, что равно True, если вы анализируете его в логическом типе.

Возвращаясь к вашей первой проблеме, сравнение строк. Вы можете проверить, равно ли strcmp(str1, str2) 0, а не логическому значению.

Для получения дополнительной информации вы можете проверить раздел возвращаемого значения в ссылочном URL.

0 голосов
/ 27 июня 2018

strcmp не возвращает boolean true / false, возвращает int. Из strcmp документации :

Возвращает <0, если str1 меньше, чем str2; > 0, если str1 больше, чем str2, и 0, если они равны.

...