PHP-在函数返回中增加一个变量

PHP-在函数返回中增加一个变量,php,oop,increment,Php,Oop,Increment,下面是一个非常简单的类的两个版本 两个版本中只有getCounterIncrement()函数不同 版本1 版本2 问题 为什么两个版本的输出不同 就编码标准而言,这两个版本中的一个是否比另一个更好 有没有更好的编码方法 变量名之后或之前的标准大小写++。如果它位于变量名之后,则在本例中,上一个值返回为0。当变量后面有它时,首先递增它并返回新值 这两种方法都不是一种更好或更坏的方法,它只是两种不同的运算符,可以根据需要在不同的情况下使用增量后和增量前调用它们,减量时调用它们 我可能会像这样重

下面是一个非常简单的类的两个版本

两个版本中只有
getCounterIncrement()
函数不同

版本1 版本2 问题
  • 为什么两个版本的输出不同
  • 就编码标准而言,这两个版本中的一个是否比另一个更好
  • 有没有更好的编码方法

变量名之后或之前的标准大小写
++
。如果它位于变量名之后,则在本例中,上一个值返回为0。当变量后面有它时,首先递增它并返回新值

这两种方法都不是一种更好或更坏的方法,它只是两种不同的运算符,可以根据需要在不同的情况下使用<代码>增量后和
增量前
调用它们,减量时调用它们

我可能会像这样重新写一点(尽管这不是更好的方法)

<?php

class Counter {
  protected $counter;

  public function __construct() {
    $this->counter = 0;
  }

  public function incrementValue()
  {
    $this->counter++;
  }
  public function getValue() {
    return $this->counter;
  }
}

$counter = new Counter;
$counter->incrementValue();
print $counter->getValue();

例如,当你说i++意味着使用i,然后将其增加1。因此,在第二个版本中,它首先增加它,然后返回它,这就是输出不同的原因。

在这一行中,在返回计数器后增加计数器:

return $this->counter++;
相反,您需要在返回之前增加其值,如下所示:

return ++$this->counter;
发件人: ++$a:Pre increment=>将$a增加1,然后返回$a

$a++:Post increment=>返回$a,然后将$a增加一

在第一个版本中,首先返回值,然后递增(递增后)。因此,如果要返回递增的值,必须使用递增前的

public function getCounterIncrement() {
    return ++$this->counter;
}
为什么两个版本的输出不同? 因为在第一个版本中,is所做的是,它首先使用值,然后增加相同的值。这就是为什么第一个版本会打印0,1,第二个版本会打印1,2

  • 在第一种情况下,它首先返回值,然后递增
  • 在第二种情况下,它首先递增值,然后返回值
就编码标准而言,这两个版本中的一个是否比另一个更好? 不,就编码标准而言,两者都很好。这完全取决于您想要使用的实现

有没有更好的编码方法? 这已经是你写作的好方法了。这只是选择你喜欢/想要的方法

  • 问题: ++变量后表示增量将在任何代码执行后发生
  • 在第一个选项中,它首先返回当前值,然后返回增量

    在第二个选项中,它将在第一行更新,并在下一行返回更新后的值

    希望你能理解我说的话

    2和3个问题: 您可以在变量之前使用+,以便它更新并返回值。但我认为你的代码没有任何问题


    谢谢。

    呵呵。。。谢谢你完整的回答。不,我不是为了好玩才问的。我刚才对这些操作符的使用略作停顿:()
    return ++$this->counter;
    
    public function getCounterIncrement() {
        return ++$this->counter;
    }