PHP: Почему нам нужна функция сравнения строк?

Операторы сравнения < <= > >= могут применяться и для строк. Итак, зачем нам нужна специальная функция для сравнения строк: strcmp ?

Потому что существует несколько вариантов:

В зависимости от функции ответ на эти вопросы различается:

  • Он чувствителен к регистру? ( strcmp vs strcasecmp , strnatcmp vs strnatcasecmp )
  • Зависит ли он от локали? ( strcoll делает)
  • Могу ли я указать сортировку? ( strcoll зависит от setlocale )

Кроме того, операторы сравнения также дают true или false . strcmp дает целое число, поэтому он может кодировать одновременно, есть ли идентификатор (return 0) или, если он не является, который больше (в зависимости от того, является ли значение положительным или отрицательным).

Хотя в PHP для strcmp нет перегрузок, strcmp приводит к 3 различным значениям -1 меньше, чем 0, для равных и +1 больше, чем сравниваемая строка. При < = <= > >= вы будете (иногда) выполнять несколько проверок один за другим.