В чем разница между этими двумя функциями strcmp () в PHP? - PullRequest
2 голосов
/ 25 октября 2011

Мне трудно понять разницу между

A) return strcmp($digest, $signature) == 0;

и

B) return strcmp($digest, $signature);

Ответы [ 3 ]

4 голосов
/ 25 октября 2011

Обычно strcmp() возвращает -1, 0 или 1, если первая строка меньше, равна или больше второй, соответственно. Сравнивая результат с 0 в

return strcmp($digest, $signature) == 0;

результат strcmp() превращается в логическое значение, которое только проверяет равенство, а не больше, чем / меньше, чем при сравнении. Функция вернет TRUE, если две строки равны (strcmp() == 0), и FALSE в противном случае, отбрасывая другую больше / меньше информации.

2 голосов
/ 25 октября 2011

Первая возвращает, равны ли две строки, а вторая возвращает, не равны ли две строки.

int strcmp (строка $ str1, строка $ str2)

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

0 голосов
/ 25 октября 2011

A) вернет true, если две строки равны, false в противном случае B) вернет результат strcmp

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

...