-2

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

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

这返回6

我的问题是:运营商到底是什么*=意思?

4

4 回答 4

3
$x *= 2; 

只不过是

$x = $x * 2;
于 2013-06-27T09:47:26.333 回答
3

这是一个快捷方式:

$x = $x * 2

一种可以追溯到 C 的语法并解释自然(从人类的角度来看)“将 $x 乘以 2”,而不是程序化的“取 $x 值,将其乘以 2 并重新分配回 $x”——如Kernighan 和 Ritchie 在他们的 C 编程语言中陈述。

它可以应用于所有数值运算符:

$x = $x + 2 <---> $x += 2
$x = $x - 2 <---> $x -= 2
$x = $x / 2 <---> $x /= 2
etc...

顺便说一句,6它的打印值不相关。

于 2013-06-27T09:47:50.130 回答
1

$x *= 2;$x = $x * 2;(like +=and-=.=)相同

于 2013-06-27T09:47:58.553 回答
1

+=, *=,/=-=是复合运算符。在您的代码中,它将扩展为:

$x = $x * 2
于 2013-06-27T09:48:15.070 回答