【发布时间】:2010-09-26 19:58:50
【问题描述】:
观看以下代码:
$a = 'Test';
echo ++$a;
这将输出:
Tesu
问题是,为什么?
我知道“u”在“t”之后,但为什么它不打印“1”???
PHP 文档:
此外,变量正在递增 或递减将转换为 适当的数字数据 类型——因此,下面的代码将 返回 1,因为字符串 Test 是 首先转换为整数 0,然后递增。
【问题讨论】:
-
在增加字符串后打印
1会很奇怪。 -
@David Titarenco - 我的猜测是 Michal 期望 ++ 将字符串隐式转换为整数,并且与显式转换类似,产生 0。这不是不合理的期望,请思考其中,因为 ++ 是一个数学运算符。
-
@Col。弹片:
$a + 1与++$a或$a++不一样。 -
@BoltClock 很有启发性。愿意阅读整个主题吗?
-
@Col。弹片 - 很好的例子。将它(没有双关语)添加到我的答案中。字符串可以使用增量运算符递增,但不能“添加到”,除非使用连接。