@bagos

Каким образом происходит сравнение строк в php?

Предположим если сравнивать строки Аб и Ба
Что делает компилятор при сравнении на больше/ меньше ? Переводит в числовой формат скорее всего строку и уже сравнивает числа (байты?), но по какому алгоритму?
('Аб' > 'Ба')
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
Сравнивает по коду символа. Только не компилятор, а интерпретатор.

Таблица с кодами символов

Пример
$a = 'Аб';
$b = 'Ба';
$c = 'Аа';

var_dump($a > $b); // false
var_dump($a > $c); // true


Сравнение выполняется посимвольно. При этом, каждый символ переводится в соответствующий код. Если коды символов равны, то выполняется переход к следующему символу и его дальнейшее сравнение.

  • Первое условие. Первый символ. Код "А" - 128, код "Б" - 129. 128 больше 129? - Нет. Значит, возвращаем false;
  • Второе условие. Первый символ. Код "А" в переменной $a равен коду "A" в переменной $c, а значит переходим к сравнению следующего. Теперь второй символ. Код "б" больше кода "а"? - Да. Значит возвращаем true
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы