0

我正在尝试编辑我同事的代码(他正在度假并且遥不可及)并且有这个 if 语句:

if($this->carrier() == 1 and $this->carrier() == 2) {
    return 'V';
}

我希望他不小心放了“and”而不是“or”,这可以解释我遇到的一个错误,但他对 PHP 的了解比我多得多,我想确定这是错误的,而不是违反直觉.

4

4 回答 4

11

是的,因为它是一个具有潜在副作用的函数,所以它可能是真的。

例如:

function carrier() {
    return $someValue++;
}
于 2012-06-18T16:55:53.700 回答
5

是的。该carrier()方法可以在您每次调用它时增加它返回的任何值。

于 2012-06-18T16:55:50.847 回答
2

有可能的可能性很小,是的。

他调用了两次函数,而您没有包含该函数的文本。所以这可能会做一些我们看不到的事情,比如计算这个过程调用它的次数。

另一方面,它更有可能确实是一个错字。

于 2012-06-18T16:57:03.717 回答
1

有可能的。这是一个可以运行的工作示例。

class program
{
private $i = 1;
function carrier()
{
 $this->i=$this->i+1;
 return $this->i-1;
}

function run()
{
 if ($this->carrier()==1 && $this->carrier()==2)
 {
  echo "works";
 }
 else
 {
  echo "doesnt work" . $i;
 }
}
}

$prog = new Program();
$prog->run();
于 2012-06-18T17:05:44.777 回答