Scattato da the documentation, PHP segue la convenzione di Perl quando si occupa di operazioni aritmetiche su variabili di caratteri:
Ad esempio, in PHP e Perl $ a = 'Z'; $ A ++; trasforma $ a in 'AA', mentre in C a = 'Z'; a ++; trasforma in "[" (il valore ASCII di "Z" è 90, il valore ASCII di "[" è 91). Si noti che le variabili di carattere possono essere incrementate ma non decrementate e anche così sono supportati solo caratteri ASCII semplici (a-z e A-Z). L'incremento/decremento di altre variabili di caratteri non ha alcun effetto, la stringa originale è invariata.
Mentre personalmente non ho usato questa funzione, posso pensare ad alcuni vantaggi seguendo la convenzione di Perl, in contrapposizione a C's. Questo è l'incremento nell'intervallo alfa rispetto al semplice incremento del valore ASCII.
Rimanendo nell'intervallo alfa, in sostanza stiamo parlando di una base 26 numeral system (utilizzando lettere). Così come 9
incrementa a 10
(carry over), z
incrementi a aa
.
Quello che mi viene in mente immediatamente sono le sequenze di hash dei caratteri.
public static function nextSeed() {
// $seed = abc
return strtolower(++self::$seed);
// $seed = abd
}
Mentre probabili tali semi sarebbero stati gestiti al di fuori di PHP, è comunque PHP vantaggioso fornisce nativamente ciò che altrimenti richiederebbe più codice.
Altri casi di utilizzo:
- Base-26 in numeri sistema di rappresentazione
- differenze di carattere Calcolo
- crittografia
fonte
2013-06-28 15:15:11
E 'un trucco, non è una caratteristica. SO non può rispondere al "perché" dietro il design del linguaggio, tranne che è stato [riportato da Perl] (http://stackoverflow.com/questions/6458068/increment-and-decrement-strings-in-perl) – mario
The solo il tempo in cui posso pensare che sia utile sarebbe se una serie di stringhe venissero testate come condizionali. Invece di scrivere un test per ognuno, sarebbe utilizzato un ciclo for per testare ciascuno di essi. – asimes
Gli ID delle colonne MS Excel incrementano "A" da "Z", "AA" a "AZ", "BA" a "BZ", ecc., Facendo corrispondere questo modello di incremento dei caratteri; quindi l'incremento dei caratteri è estremamente utile quando si lavora con fogli di lavoro Excel –