$var = \'test_1\';
var_dump(++$var); // string(6) \"test_2\"
$var2 = \'1_test\';
var_dump(++$var2); // string(6) \"1_tesu\"
$var3 = \'test_z\';
var_dump(++$var3);
Its officially documentated http://php.net/language.operators.increment
It's not an Easter egg. It's expected in PHP, but no it's not common in other languages. (At least not incrementing letters.) PHP treats strings containing a number the same as numbers in most cases. So you can also "2" * "2"
for example.
PHP follows Perl's convention when dealing with arithmetic operations on character variables and not C's. For example, in PHP and Perl $a = 'Z'; $a++; turns $a into 'AA', while in C a = 'Z'; a++; turns a into '[' (ASCII value of 'Z' is 90, ASCII value of '[' is 91). Note that character variables can be incremented but not decremented and even so only plain ASCII characters (a-z and A-Z) are supported. Incrementing/decrementing other character variables has no effect, the original string is unchanged.
-> http://php.net/manual/en/language.operators.increment.php