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;
}