观看以下代码:
$a = 'Test';
echo ++$a;
这将输出:
Tesu
问题是,为什么?
我知道“u”在“t”之后,但为什么它不打印“1”???
PHP 文档:
此外,变量正在递增
或递减将转换为
适当的数值数据
类型——因此,下面的代码将
返回 1,因为字符串 Test 是
首先转换为整数
0,然后递增。
PHP 在处理字符变量而不是 C 的算术运算时遵循 Perl 的约定。例如,在 Perl 中 'Z'+1 变成 'AA',而在 C 中 'Z'+1 变成 '[' ( ord('Z') == 90, ord('[') == 91 ) 。请注意,字符变量可以递增,但不能递减,即使如此,也仅支持纯 ASCII 字符(a-z 和 A-Z)。
Source: http://php.net/operators.increment http://php.net/operators.increment
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)