我的问题是,使用这段代码我得到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
我希望有人可以向我解释这一点,因为对我而言,这完全是奇怪的。
答案 0 :(得分:2)
php将此视为:
$counter = 0;
if ($counter = (test2() !== false)) { //see?
//so counter is equal to 1
$counter += 2;
print $counter;
}
function test2() {
return -1;
}
这种方式更好:
$counter = 0;
if (($counter = test2()) !== false) { //see?
//now counter is -1
$counter += 2;
print $counter;
}
function test2() {
return -1;
}