使用增量运算符后,输出小于预期

时间:2018-11-03 04:08:18

标签: php increment post-increment pre-increment

我创建了一个类abc和静态变量以及两个具有名称setsize的函数,其中我设置了一个值,另一个函数创建了一个getsize以在getsize函数中获取值。我在调用一个函数时增加一个值,其输出必须为101但输出为什么是100

 <?php

Class abc {   // create a class 
  public static $a;

  static function getsize() {  make a function
    return self::$a++;   //increment a static variable
  }
  static function setsize($n) {
    self::$a=$n;  // set size of static variable
  }
}
abc::setsize(100);  // set value of static variable
echo abc::getsize();  //call getsize function output is 100 but it must be 
101 

1 个答案:

答案 0 :(得分:0)

您需要做的就是使用预增量来获得所需的结果。这是因为您将++与回显一起使用。 http://php.net/manual/en/language.operators.increment.php

代码:(Demo

Class abc{   // create a class 
    public static $a;

    static function getsize() {
        return ++self::$a;   //increment a static variable
    }
    static function setsize($n) {
        self::$a = $n;  // set size of static variable
    }
}
abc::setsize(100);  // set value of static variable
echo abc::getsize();  //call getsize function output is 100 but it must be 101
// output: 101

在一个简单的演示中:(Demo

$hundy = 100;
echo $hundy++;
echo "\n$hundy";
echo "\n---\n";
$hundy = 100;
echo ++$hundy;

输出:

100
101
---
101