【发布时间】:2013-12-05 13:59:08
【问题描述】:
请看这段代码:
function getVar(){
return "some string";
}
function test1(){
if($a = getVar()){
echo $a;
}
}
function test2(){
if($a = getVar() && $b = getVar()){
echo $a;
}
}
//test1();
test2();
我想你会明白发生了什么。试试test1() 和test2()
为什么test2() 变成$a 1?
【问题讨论】:
-
在
if条件下,您应该使用==来检查是否相等。=用于分配。 -
if 语句返回真或假。这可能就是返回的内容。
-
哦,是的,分配的优先级低于
&&,atm 太困了。尽管 OP 应该将代码添加到问题中,但这个问题并不算太糟糕,值得多次否决。 -
@jeff:
if语句不返回任何内容。 -
@Mark 我同意 100%,但我故意使用“返回”一词而不是评估,因为提供的代码更有意义。
标签: php if-statement variable-assignment