在PHP中,如果($var1=myfunction()&;$var2=myfunction2())失败,为什么语句会失败?
在PHP中,我看到很多人都在使用这个:在PHP中,如果($var1=myfunction()&;$var2=myfunction2())失败,为什么语句会失败?,php,function,if-statement,Php,Function,If Statement,在PHP中,我看到很多人都在使用这个: if($var1 = myfunction()){ //do something } 这样,如果为true,则变量已保存所需的值 为什么两个变量和两个函数不能使用相同的方法 if($var1 = myfunction() && $var2 = myfunction2()){ // Do something } 当我试着使用上述方法时,我总是得到一个“1”。即使两个函数都返回一个值。我一移除第二部分($var2=)-它就工作了 为什
if($var1 = myfunction()){
//do something
}
这样,如果为true,则变量已保存所需的值
为什么两个变量和两个函数不能使用相同的方法
if($var1 = myfunction() && $var2 = myfunction2()){
// Do something
}
当我试着使用上述方法时,我总是得到一个“1”。即使两个函数都返回一个值。我一移除第二部分($var2=)-它就工作了
为什么我会得到1?这是因为
php解释
$var1 = myfunction() && $var2 = myfunction2()
表达为
$var1 = ( myfunction() && ( $var2 = myfunction2() ) )
因此:
排在第一位$var2=myfunction2()
- 然后计算
myfunction()&&$var2
- 后一个表达式的结果(始终为布尔值)被分配给
$var1
($var1 = myfunction()) && ($var2 = myfunction2())
更好的解决方案是:避免这样的表达这是因为
php解释
$var1 = myfunction() && $var2 = myfunction2()
表达为
$var1 = ( myfunction() && ( $var2 = myfunction2() ) )
因此:
排在第一位$var2=myfunction2()
- 然后计算
myfunction()&&$var2
- 后一个表达式的结果(始终为布尔值)被分配给
$var1
($var1 = myfunction()) && ($var2 = myfunction2())
更好的解决方案是:避免这样的表达这是因为
php解释
$var1 = myfunction() && $var2 = myfunction2()
表达为
$var1 = ( myfunction() && ( $var2 = myfunction2() ) )
因此:
排在第一位$var2=myfunction2()
- 然后计算
myfunction()&&$var2
- 后一个表达式的结果(始终为布尔值)被分配给
$var1
($var1 = myfunction()) && ($var2 = myfunction2())
更好的解决方案是:避免这样的表达这是因为
php解释
$var1 = myfunction() && $var2 = myfunction2()
表达为
$var1 = ( myfunction() && ( $var2 = myfunction2() ) )
因此:
排在第一位$var2=myfunction2()
- 然后计算
myfunction()&&$var2
- 后一个表达式的结果(始终为布尔值)被分配给
$var1
($var1 = myfunction()) && ($var2 = myfunction2())
更好的解决办法是:避免这样的表达我本来打算在我更长的回答中包括这一点的,但是你抢先告诉了我。非常感谢。但为什么这样的表达方式不好呢?这样我就不用在if语句中再次调用函数了。@gdaniel:不要再调用它了<代码>$var1=f1()$var2=f2();如果($var1&&$var2){}我本来打算在我的长答案中包含这一点,但你比我快。非常感谢。但为什么这样的表达方式不好呢?这样我就不用在if语句中再次调用函数了。@gdaniel:不要再调用它了<代码>$var1=f1()$var2=f2();如果($var1&&$var2){}我本来打算在我的长答案中包含这一点,但你比我快。非常感谢。但为什么这样的表达方式不好呢?这样我就不用在if语句中再次调用函数了。@gdaniel:不要再调用它了<代码>$var1=f1()$var2=f2();如果($var1&&$var2){}我本来打算在我的长答案中包含这一点,但你比我快。非常感谢。但为什么这样的表达方式不好呢?这样我就不用在if语句中再次调用函数了。@gdaniel:不要再调用它了<代码>$var1=f1()$var2=f2();如果($var1&&$var2){}