增量角色有效,但添加没有.为什么?

Shu*_*ham 6 php

$a = 'a';
print ($a+1);
print ($a++);
print $a;
Run Code Online (Sandbox Code Playgroud)

输出是: 1 a b

很明显增量运算符完成了它的工作,但我不明白为什么输出为'1'以防万一$a+1.谁能解释一下?

Thi*_*ter 9

PHP不是C,所以'a' + 1不是'b'.

'a'在数字上下文中是0,和0+1 = 1.

php> echo (int)'a';
0
Run Code Online (Sandbox Code Playgroud)

后缀/前缀增量运算符确实像C char一样工作的事实似乎是PHP的一个令人讨厌的"特性".特别是因为在这种情况下递减运算符是无操作的.

当你增加'z'它时会变得更糟:

php> $a = 'z';
php> echo ++$a
aa
Run Code Online (Sandbox Code Playgroud)