猿问

关于php比较运算符的2个疑问?

(1)代码:

$a = 5;

var_dump($a > true).'<br>';  

为何结果为:boolean false?求详解

(2)代码:

<?php


$a = 3;

$b = 5;


if($a = 5 || $b = 7){

$a++;

$b++;

}

echo $a,$b;

var_dump($a);

var_dump($b);

?>

输出为:16。求详解,谢谢。以及为什么var_dump($a)为boolean true。为什么$b=6?


慕容粉丝
浏览 1578回答 2
2回答

慕妹3887762

问题一:这个是强制转换的问题,当你使用$a > true时,$a被强制转换成了布尔值进行比较,比较标准是true>false问题二:if($a = 5 || $b = 7),这个语句中如果不是故意写错的话,应该要写成( ( $a == 5 ) || ($b == 7 ) )那比较直观,也就不会有这么多问题了。这个主要就是if里面的运算顺序问题了$a = 5 || $b = 7 这里其实按去处符就变成了 $a = (5  ||  ($b=7))  ,然后 由于$a = 5 返回了bool(true),所以$b = 7是不会执行的。到了函数体中,由于 $a = true;所以$a ++ 不会有变化。

自恋的疯子linda

判断的话是两个等于号。负值的话一个等于号
随时随地看视频慕课网APP
我要回答