PHP - 这个if语句EVER能否返回true?

时间:2012-06-18 16:54:18

标签: php if-statement

我正在尝试编辑我的同事的代码(他正在度假并且无法触及)并且有if if语句:

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

我的希望是他不小心把“和”而不是“或”这可以解释我得到的一个错误,但他对PHP的了解远远超过我,我想确定这是错误的而不是只是反直觉。

4 个答案:

答案 0 :(得分:11)

是的,因为它是具有潜在副作用的功能,它可能是真的。

例如:

function carrier() {
    return $someValue++;
}

答案 1 :(得分:5)

是。 carrier()方法可以增加每次调用时返回的值。

答案 2 :(得分:2)

它的可能性很小,是的。

他正在调用一个函数两次,并且你没有包含该函数的文本。所以这可能是做我们看不到的事情,比如计算这个过程调用它的次数。

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

答案 3 :(得分: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();