>我正在尝试编辑我同事的代码(他正在度假并且无法触及),并且有以下if语句:
if($this->carrier() == 1 and $this->carrier() == 2) {
return 'V';
}
我希望他不小心放了"and"而不是"or",这可以解释我遇到的错误,但他比我更了解PHP,我想确定这是错误的,而不仅仅是违反直觉。
是的,因为它是一个具有潜在副作用的函数,所以可能是真的。
例如:
function carrier() {
return $someValue++;
}
是的。carrier()
方法可以递增每次调用时返回的任何值。
是的,可能性很小。
他调用了一个函数两次,而你没有包含该函数的文本。所以这可能是在做一些我们看不到的事情,比如计算这个过程调用它的次数。
另一方面,它更有可能确实是一个错字。
这是可能的。下面是一个可以运行的工作示例。
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();