我一直在浏览一些 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 在他们的 C 编程语言中陈述。
它可以应用于所有数值运算符:
$x = $x + 2 <---> $x += 2
$x = $x - 2 <---> $x -= 2
$x = $x / 2 <---> $x /= 2
etc...
顺便说一句,6
它的打印值不相关。
$x *= 2;
与$x = $x * 2;
(like +=
and-=
等.=
)相同
+=
, *=
,/=
和-=
是复合运算符。在您的代码中,它将扩展为:
$x = $x * 2