Добавить в корзинуПозвонить
Найти в Дзене

Неожиданный поворот: зачем увеличивать буквы в PHP

Когда мы слышим «оператор инкремента» (тот самый ++), перед глазами сразу встают цифры: увеличили число на единицу — всё просто. А декремент (--) — уменьшили. Но в PHP эти операторы умеют работать не только с числами. Их можно применять к строкам из латинских букв. Звучит странно, но это реально работает и в некоторых задачах очень выручает. Вместо того чтобы писать: $letter = 'a';
потом $letter = 'b';
потом $letter = 'c';… Достаточно один раз задать начальную букву и каждый раз писать ++: $letter = 'a'; $letter++; // теперь $letter == 'b' $letter++; // теперь 'c' Когда дойдёте до z, следующее увеличение даст aa, потом ab, ac… и так далее. А вот уменьшать строки (--) практически бесполезно — для букв это работает плохо и непредсказуемо. Запоминать не надо. Главное — увеличение работает как по волшебству. Представьте, что вы пишете код, который должен перебирать все варианты из двух букв: aa, ab, ac … до zz. Вручную прописывать 676 комбинаций? Невозможно. Или чуть более жизненный пример
Оглавление

Когда мы слышим «оператор инкремента» (тот самый ++), перед глазами сразу встают цифры: увеличили число на единицу — всё просто. А декремент (--) — уменьшили. Но в PHP эти операторы умеют работать не только с числами.

Их можно применять к строкам из латинских букв. Звучит странно, но это реально работает и в некоторых задачах очень выручает.

Как это выглядит

Вместо того чтобы писать:

$letter = 'a';
потом $letter = 'b';
потом $letter = 'c';…

Достаточно один раз задать начальную букву и каждый раз писать ++:

$letter = 'a';
$letter++; // теперь $letter == 'b'
$letter++; // теперь 'c'

Когда дойдёте до z, следующее увеличение даст aa, потом ab, ac… и так далее.

А вот уменьшать строки (--) практически бесполезно — для букв это работает плохо и непредсказуемо. Запоминать не надо. Главное — увеличение работает как по волшебству.

Где это реально нужно

Представьте, что вы пишете код, который должен перебирать все варианты из двух букв: aa, ab, ac … до zz. Вручную прописывать 676 комбинаций? Невозможно.

Или чуть более жизненный пример: генератор коротких ссылок для своего сайта. Вы выдаёте посетителю ссылку вида site.ru/a, потом site.ru/b и так далее. А когда закончились однобуквенные — переходите к aa, ab…

Вот простой скрипт на PHP:

Этот маленький цикл автоматически пройдёт a, b, c… z, затем aa, ab и так до all (1000 итераций). Никаких массивов, счётчиков и сложных формул.

Почему удобно

  1. Коротко и понятно. Даже начинающий сразу поймёт: «а, тут просто идут буквы по порядку».
  2. Не нужно думать о переносах. PHP сам знает, что после z идёт aa, а после zz — aaa.
  3. Экономит время там, где без него пришлось бы писать вручную или подключать лишние библиотеки.

Ещё один неочевидный пример

Выгружаете товары в Excel-файл. Столбцы там называются буквами латиницы: A, B, C … Z, AA, AB. Оператор ++ для строк — идеальный способ пробежать по всем заголовкам столбцов, не заучивая буквенные коды.

-2

Важное предупреждение

Работает только с латиницей (a-z). Кириллицу PHP так не понимает, будет мусор.

И ещё: никогда не используйте -- для строк. Результат вас разочарует.

Вместо вывода

Идея простая: оператор ++ для строк — это готовая «система счисления» с буквами. Когда нужно выдать множество уникальных коротких кодов, подписей, меток — он даёт чистый и короткий код. Маленькая хитрость языка, которая иногда решает большую задачу.

Попробуйте сами в каком-нибудь тестовом скрипте — и вы увидите, как буквы сами перешагивают через z к двухбуквенным комбинациям. Удобно, хотя и непривычно.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.