【发布时间】:2017-05-28 06:19:01
【问题描述】:
我有以下代码:
if (!$x = some_function(1)) {
if (!$x = some_function(2)) {
return something;
}
}
我想知道以下哪些语句是等价的:
A.
if (some_function(1)) {
$x = some_function(1));
}
else if (some_function(2)) {
$x = some_function(2));
}
else {
return something;
}
或者如果它本质上是说它应该被覆盖,就像这样:
乙。
if (some_function(1)) {
$x = some_function(1));
}
if (some_function(2)) {
$x = some_function(2));
}
if (!$x) {
return something;
}
问题的另一种表述方式:在if 语句中的赋值中,是先为false 评估变量,然后再为false 赋值,还是先赋值,然后评估变量下一个?
【问题讨论】:
-
先赋值给$x,然后是条件测试。
-
另外,这个赋值仍然在作用域内,所以很容易在这个地方不经意间泄露变量。
标签: php if-statement conditional-statements variable-assignment