$a = 'a';
print ($a+1);
print ($a++);
print $a;
Run Code Online (Sandbox Code Playgroud)
输出是: 1 a b
很明显增量运算符完成了它的工作,但我不明白为什么输出为'1'以防万一$a+1.谁能解释一下?
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)
| 归档时间: |
|
| 查看次数: |
2231 次 |
| 最近记录: |