我一直在寻找通过一些模拟考试和学习PHP的指南和我碰到这个例子就是:* =操作符有什么作用?
$a = array(1, 2, 3);
foreach ($a as $x)
$x *= 2;
echo $a[0] * $a[1] * $a[2];
这将返回6
。
我的问题是:*=
运算符到底意味着什么?
我一直在寻找通过一些模拟考试和学习PHP的指南和我碰到这个例子就是:* =操作符有什么作用?
$a = array(1, 2, 3);
foreach ($a as $x)
$x *= 2;
echo $a[0] * $a[1] * $a[2];
这将返回6
。
我的问题是:*=
运算符到底意味着什么?
它的快捷方式:
$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
它是没有关系的。
$x *= 2;
不过
$x = $x * 2;
$x *= 2;
相同$x = $x * 2;
(如+=
和-=
和.=
等)
非常感谢您的回答! –
+=
,*=
,/=
和-=
是化合物的运营商。在你的代码,它会扩展为:
$x = $x * 2
[这是什么符号意味着PHP(http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in -php) –
@MarkBaker有用的问题,但没有提到'* ='。 –
这个例子作为一个教学工具真的很糟糕(它可能被误导或试图证明非引用'foreach'不会使变化保持不变 - 在这种情况下,为什么在没有任何东西的循环后混淆学生额外的乘法与做出这一点?)。谨防该学习指南。 – Jon