2013-03-12 192 views
1

我有这样的代码:PHP逻辑运算符IF语句

if (($oldTime < (time() - self::wait))) { 
    if ($this->setTime()) 
    { 
    return true; 
    } 
    else 
    { 
    return false; 
    } 
} else { 
    return false; 
} 

我可以将其替换为:

if (($oTime < (time() - self::wait)) && $this->setTime()) { 
    return true; 
} else { 
    return false; 
} 

我需要它来检查,如果$this->setTime()返回true仅当$oTime < (time() - self::wait)是真实的。

+1

是的,你可以,这是一样的。 – dfsq 2013-03-12 19:56:56

+1

* Offtopic *老兄,我们拥有相同的头像......尊重我的权威! :-D – Quasdunk 2013-03-12 20:04:58

+0

@Quasdunk哈哈) – rinchik 2013-03-12 20:13:32

回答

6
return ($oTime < (time() - self::wait)) && $this->setTime() 
+0

所以我可以更换权利?如果'$ oTime <(time() - self :: wait)'为false,'$ this-> setTime()'不会被执行? – rinchik 2013-03-12 19:58:35

+0

是的,如果我正确理解你。 &&是一个短路操作符,所以如果第一个条件是错误的,第二个条件将不会执行。 – 2013-03-12 19:59:45

1

是的,你可以使用这个

if (($oTime < (time() - self::wait)) && $this->setTime()) { 
     return true; 
    } else { 
     return false; 
    } 
1

如果if语句中第一个条件与& &(未||)失败,它会去else分支自动未经核实的第二个条件