在PHP中,我见过很多人使用这个:
if($var1 = myfunction()){
//do something
}
这样,如果为true,则变量已经保存了您需要的值。
为什么两个变量和两个函数没有相同的工作?
if($var1 = myfunction() && $var2 = myfunction2()){
// Do something
}
当我尝试使用上述内容时,我总是得到一个" 1"。即使两个函数都返回一个值。一旦我删除了第二部分($ var2 =) - 它就有效了。
为什么我得到1?
答案 0 :(得分:3)
php解释
$var1 = myfunction() && $var2 = myfunction2()
表达为
$var1 = ( myfunction() && ( $var2 = myfunction2() ) )
所以:
$var2 = myfunction2()
首先出现myfunction() && $var2
$var1
解决方案 - 使用括号
($var1 = myfunction()) && ($var2 = myfunction2())
更好解决方案:避免使用此类表达