Php 通过引用返回增加的变量

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的特

我知道这是一个简单的例子,我知道为什么返回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的特殊行为?

$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º返回值和后期增加。谢谢