Php 通过引用返回增加的变量
我知道这是一个简单的例子,我知道为什么返回21,但我不明白它为什么以这种方式工作:Php 通过引用返回增加的变量,php,Php,我知道这是一个简单的例子,我知道为什么返回21,但我不明白它为什么以这种方式工作: function increase(&$a) { return $a++; // now i expect $a = 2, but return FIRST the reference (1), an increase later..? } $a = 1; $b = increase($a); echo $a.$b; 运算符和byRef的特
function increase(&$a) {
return $a++; // now i expect $a = 2, but return FIRST the reference (1), an increase later..?
}
$a = 1;
$b = increase($a);
echo $a.$b;
运算符和byRef的特殊行为?当
$a
最初为1
时,函数中的后增量运算符告诉PHP返回1
,然后将$a
增量到2
。。。。因此,分配给$b
的返回值为1;by引用确保递增的$a
是其在全局范围内的新值
然后,您将
$a
(现在是2
)与$b
(1
)连接起来,给出21
当$a
最初为1
时,函数中的后增量运算符告诉PHP返回1
,然后将$a
增加到2
。。。。因此,分配给$b
的返回值为1;by引用确保递增的$a
是其在全局范围内的新值
然后将
$a
(现在是2
在后期增量之后)与$b
(1
)连接起来,给出21
$a++
是后期增量
将返回$a
的旧值,而不是增量值
但是如果+$a
是预增量,则$a
的值将递增,并返回新值
因此,在这种情况下,如果
$a=1
并且您执行$a++
操作,它将返回1
,而如果您使用++$a
它将返回2$a++
是后增量
将返回$a
的旧值,而不是增量值
但是如果+$a
是预增量,则$a
的值将递增,并返回新值
因此,在这种情况下,如果$a=1
并且你做了$a++
,它将返回1
,而如果你使用++$a
它将返回2
现在我明白了,我错过了这一点,我认为+$x和$x++是一样的,但是返回值是1º,并且后期增加。谢谢现在我明白了,我错过了这个,认为+++$x和$x++是一样的,但工作1º返回值和后期增加。谢谢