Oh, bravo. That is nice. It took me a moment to figure out.
For others: PHP allows you to increment strings, and if you try to do that, it follows Perl's habits (http://perldoc.perl.org/perlop.html#Auto-increment-and-Auto-...):
"If, however, the variable has been used in only string contexts since it was set, and has a value that is not the empty string and matches the pattern /^[a-zA-Z][0-9]\z/ , the increment is done as a string, preserving each character within its range, with carry..."
So "0wz"++ becomes "0xa", "0xa"++ becomes "the hexadecimal representation of 10, plus one".
I learned something new today.