运算符 '+=' 表现怪异
Operator '+=' behaves weird
我的问题是使用此代码我得到 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
我希望有人能给我解释一下,因为对我来说这很奇怪。
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;
}
我的问题是使用此代码我得到 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
我希望有人能给我解释一下,因为对我来说这很奇怪。
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;
}