为什么 1 + 递减值 + 1 = 2?

2022-08-30 21:31:10

我找到了一段代码(来自我们的一位开发人员),我想知道为什么它的输出是2?

<?php
  $a = 1;
  $a = $a-- +1;
  echo $a;

谢谢


答案 1

我会给我的解释一个旋风。我们谈论的是一个变量,它引用了系统中的某个值。

因此,当您定义 时,您会将变量指向内存中某个位置关闭的值。$a = 1$a1

使用第二行,您正在创建一个新值并将其设置为 。检索原始值 ,该值是 和 添加以生成,并在内存中的其他位置创建该值。所以现在你有一个变量,它指向内存中的一些其他值,这些值在一路上递减为,但没有任何东西再指向它,所以谁在乎呢。$a = $a-- + 1$a$a--$a112$a210

然后,您回显指向您的值 .$a2

编辑:测试页面


答案 2

$a - 在执行行后递减值。要获得答案 1,应将其更改为 --$a

<?php
 $a = 1;
 $a = --$a +1; // Decrement line
 echo $a;
?>

推荐