$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_"
显然,如果最后一个字符是一个数字,在字符串上使用递增运算符会增加数字,增加字母,然后如果最后一个字符在字母表中,则重置为一次z,并且没有对非字母数字字符的影响。
这是许多脚本语言中的标准功能,还是我找到了一个PHP复活节彩蛋?
答案 0 :(得分:6)
PHP在处理算术运算时遵循Perl的约定 关于字符变量而不是C。例如,在PHP和Perl $ a =中 'Z'; $ A ++;将$ a变为'AA',而在C a ='Z';一个++;变成一个 '['('Z'的ASCII值为90,'['的ASCII值为91)。注意 字符变量可以递增但不递减,即使如此 仅支持纯ASCII字符(a-z和A-Z)。 递增/递减其他字符变量没有效果, 原始字符串不变。
- > http://php.net/manual/en/language.operators.increment.php
答案 1 :(得分:2)
答案 2 :(得分:0)
这不是复活节彩蛋。它在PHP中是预期的,但在其他语言中并不常见。 (至少不增加字母。)PHP在大多数情况下处理包含与数字相同的数字的字符串。所以你也可以"2" * "2"
例如。