Php *=操作符是做什么的?

Php *=操作符是做什么的?,php,operators,Php,Operators,我浏览了一些PHP模拟考试和学习指南,发现了以下示例: $a = array(1, 2, 3); foreach ($a as $x) $x *= 2; echo $a[0] * $a[1] * $a[2]; 这将返回6 我的问题是:*=操作符的确切含义是什么 $x *= 2; 只是 $x = $x * 2; 这是一个快捷方式: $x = $x * 2 一种可以追溯到C语言的语法,它解释了自然(从人类的角度来看)“将$x乘以2”,而不是编程的“获取$x值,将其乘以2,然后重

我浏览了一些PHP模拟考试和学习指南,发现了以下示例:

$a = array(1, 2, 3);
foreach ($a as $x)
    $x *= 2;
echo $a[0]  * $a[1]  * $a[2];
这将返回
6

我的问题是:
*=
操作符的确切含义是什么

$x *= 2; 
只是

$x = $x * 2;
这是一个快捷方式:

$x = $x * 2
一种可以追溯到C语言的语法,它解释了自然(从人类的角度来看)“将$x乘以2”,而不是编程的“获取$x值,将其乘以2,然后重新分配回$x”——正如Kernighan和Ritchie在他们的研究报告中所述

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

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

顺便说一句,打印值
6
与此无关。

$x*=2
$x=$x*2相同
(如
+=
-=
=
等)

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

$x = $x * 2

@MarkBaker提出了一个有用的问题,但是这里没有提到
*=
。我不知道是谁提出了这个问题。这实际上根本没有显示任何研究工作。这在“除了基本赋值运算符外,还有用于所有数组、并集和字符串运算符的“组合运算符”,允许您在表达式中使用值,然后将其值设置为该表达式的结果”中有介绍尽管我知道,如果你不知道要找什么(这里的关键字是赋值),可能很难找到它。@DannyBeckett:去谷歌,开始键入
php*=
。你甚至不必知道“操作员”这个词。