Взято из документации, PHP следует соглашению Perl при работе с арифметическими операциями над характерные переменные:
Например, в PHP и Perl $a = 'Z'; $а++; превращает $a в 'AA', а в C a = 'Z'; а++; превращает a в '[' (значение ASCII 'Z' равно 90, значение ASCII '[' равно 91). Обратите внимание, что символьные переменные могут увеличиваться, но не уменьшаться, и даже в этом случае поддерживаются только простые символы ASCII (a-z и A-Z). Увеличение/уменьшение других символьных переменных не влияет, исходная строка остается неизменной.
Хотя я лично не использовал эту возможность, я могу выделить несколько преимуществ, связанных с соглашением Perl, в отличие от C. Это увеличение в пределах альфа-диапазона, а не просто увеличение значения ASCII.
Оставаясь в альфа-диапазоне, мы, по сути, говорим о системе счисления с основанием 26 системе счисления ( используя буквы). Так же, как 9
увеличивается до 10
(перенос), z
увеличивается до aa
.
Что сразу приходит на ум, так это хеш-последовательности символов.
public static function nextSeed() {
// $seed = abc
return strtolower(++self::$seed);
// $seed = abd
}
Хотя, вероятно, такие семена будут управляться вне PHP, тем не менее, PHP имеет преимущество в том, что в противном случае потребовалось бы больше кода.
Другие варианты использования:
- Представление системы счисления с основанием 26
- Вычисление различий символов
- Шифрование
person
Jason McCreary
schedule
28.06.2013