我有一段代码。尽管条件为真,但它每次都返回false。我哪里错了?
$a = 5;
$b = 10;
$c = 15;
if( ($c > $b) > $a){
echo "yes";
} else {
echo "no";
}
答案 0 :(得分:2)
($c > $b)
返回true。然后你得到true > $a
这将是错误的。
您应该嵌套 if 语句,或者考虑以下内容:
if( $c > $b && $c > $a){
答案 1 :(得分:1)
为您的数据
($c > $b)
是true
。
true > $a
是false
。
var_dump(100 < TRUE); // FALSE - same as (bool)100 < TRUE
var_dump(-10 < FALSE);// FALSE - same as (bool)-10 < FALSE
应该是 -
if( ($c > $b) && ($c> $a)) {
答案 2 :(得分:1)
($c > $b)
产生true,用数字表达式中的1表示。
1 > $a
肯定是假的。
如果你想在$ c和$ a之间的范围内获得$ b,那么你可能正在找($c>$b && $b>a)
。
答案 3 :(得分:1)
表达式可以解释为:
1. true = 15 > 10
2. 1 = (int) true
3. true = 5 > 1
($l > $m)
转换为true
的整数表示形式,1
且1
小于5