* =运算符有什么作用?

时间:2013-06-27 09:45:21

标签: php operators

我一直在浏览PHP的一些模拟考试和学习指南,我遇到了这个例子:

$a = array(1, 2, 3);
foreach ($a as $x)
    $x *= 2;
echo $a[0]  * $a[1]  * $a[2];

返回6

我的问题是:*=运算符究竟是什么意思?

4 个答案:

答案 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