字符串的增量行为 - PHP复活节彩蛋?

Cal*_*dge 6 php types increment

$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); // string(6) "test_a"

$var4 = 'test_';
var_dump(++$var4); // string(5) "test_"
Run Code Online (Sandbox Code Playgroud)

显然,如果最后一个字符是数字,则在字符串上使用增量运算符会增加数字,增加字母,然后如果最后一个字符在字母表中,则重置为一次z,并且对非字符串没有影响字母数字字符.

这是许多脚本语言中的标准功能,还是我找到了一个PHP复活节彩蛋?

Mas*_*sim 6

当处理字符变量而不是C的算术运算时,PHP遵循Perl的约定.例如,在PHP和Perl $ a ='Z'中; $ A ++; 将$ a变为'AA',而在C a ='Z'; 一个++; 将a转换为'['('Z'的ASCII值为90,'['的ASCII值为91).请注意,字符变量可以递增但不递减,即使只支持纯ASCII字符(az和AZ).递增/递减其他字符变量无效,原始字符串不变.

- > http://php.net/manual/en/language.operators.increment.php