我想編輯我的同事的代碼(他是在休假和遙不可及的),而且這個if語句:PHP - 這個if語句可以返回true嗎?
if($this->carrier() == 1 and $this->carrier() == 2) {
return 'V';
}
我的希望是,他不小心把「和」替代「或「這可以解釋我遇到的一個錯誤,但他比我更瞭解PHP,我想確定這是錯誤的,而不是僅僅違反直覺。
我想編輯我的同事的代碼(他是在休假和遙不可及的),而且這個if語句:PHP - 這個if語句可以返回true嗎?
if($this->carrier() == 1 and $this->carrier() == 2) {
return 'V';
}
我的希望是,他不小心把「和」替代「或「這可以解釋我遇到的一個錯誤,但他比我更瞭解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();
是的,如果'$ this-> carrier()'返回每次調用的不同值。但如果沒有,那麼不。所以這個聲明是否是一個錯誤取決於'$ this-> carrier()'在做什麼。 –
Yesit可以像大家一樣說,但是,它不應該以這種方式實施。我建議切換到或看看它是否解決了你的問題。 – FatalError