-1
我的問題是,與此代碼我得到3,但因爲它在我看來我應該得到1,但只是不知道如何解決它。運營商的'+ ='表現怪異
示例代碼:
$counter = 0;
if (($counter = test2() !== false)) {
$counter += 2;
print $counter;
}
function test2() {
return -1;
}
輸出:3
如果我做的其他方式,它工作正常,我會得到-1。 有人可以告訴我我做錯了什麼。
示例代碼:
$counter = 0;
if (($counter = test2() !== false)) {
$counter -= 2;
print $counter;
}
function test2() {
return 1;
}
輸出:1
我希望有人能解釋這個給我,因爲對我來說這是完全不可思議。
在條件檢查執行的任務是著名的壞主意,正是這種原因。 (就可讀和可執行的代碼而言,'!== false'並不能幫助...) – David 2015-02-23 20:43:14
運算符優先級:http://php.net/manual/en/language.operators.precedence.php'!= ='比'='更緊密 – 2015-02-23 20:43:40