我一直在浏览PHP的一些模拟考试和学习指南,我遇到了这个例子:
$a = array(1, 2, 3);
foreach ($a as $x)
$x *= 2;
echo $a[0] * $a[1] * $a[2];
返回6
。
我的问题是:*=
运算符究竟是什么意思?
答案 0 :(得分:3)
$x *= 2;
只是
$x = $x * 2;
答案 1 :(得分:3)
这是以下的捷径:
$x = $x * 2
一种可以追溯到C并且考虑自然(从人类的角度来看)“将$ x乘以2”的语法,而不是程序化的“取$ x值,乘以2并重新分配回$ x” - 正如Kernighan和Ritchie在The C programming language中所说的那样。
它可以应用于所有数值运算符:
$x = $x + 2 <---> $x += 2
$x = $x - 2 <---> $x -= 2
$x = $x / 2 <---> $x /= 2
etc...
顺便说一句,打印的值6
与之无关。
答案 2 :(得分:1)
$x *= 2;
与$x = $x * 2;
相同(例如+=
和-=
以及.=
等)
答案 3 :(得分:1)
+=
,*=
,/=
和-=
是复合运营商。在您的代码中,它将扩展为:
$x = $x * 2