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

标签 php operators

我找到了一段代码(来 self 们的一位开发人员),我想知道为什么它的输出是 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 值。

编辑:Testing Page

关于php - 为什么 1 + 递减值 + 1 = 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7788032/

相关文章:

c++ - 为什么 'operator<<(cout, double)' 不起作用?

php - 什么是 PHP 运算符 % 以及如何在实际示例中使用它?

javascript - | 是什么意思?在 JavaScript 中

c# - java 和 c# 中右移运算符的不同结果

php - 如何从文本中删除变音符号?

php - 如何让谷歌搜索像这样显示我的网站

PHP - 如果语句在 foreach 循环中无法正常工作

PHP:用于 JavaScript 的 krumo()

php - 在写入文件之前检查文件是否可写

c - 从任何角度来看,++i 和 i+=1 之间有什么区别