为什么 1 + 递减值 + 1 = 2?
我找到了一段代码(来自我们的一位开发人员),我想知道为什么它的输出是2?
<?php
$a = 1;
$a = $a-- +1;
echo $a;
谢谢
我找到了一段代码(来自我们的一位开发人员),我想知道为什么它的输出是2?
<?php
$a = 1;
$a = $a-- +1;
echo $a;
谢谢
我会给我的解释一个旋风。我们谈论的是一个变量,它引用了系统中的某个值。
因此,当您定义 时,您会将变量指向内存中某个位置关闭的值。$a = 1
$a
1
使用第二行,您正在创建一个新值并将其设置为 。检索原始值 ,该值是 和 添加以生成,并在内存中的其他位置创建该值。所以现在你有一个变量,它指向内存中的一些其他值,这些值在一路上递减为,但没有任何东西再指向它,所以谁在乎呢。$a = $a-- + 1
$a
$a--
$a
1
1
2
$a
2
1
0
然后,您回显指向您的值 .$a
2
编辑:测试页面
$a - 在执行行后递减值。要获得答案 1,应将其更改为 --$a
<?php
$a = 1;
$a = --$a +1; // Decrement line
echo $a;
?>