我不确定我做错了什么,但内联if语句总是返回true,即使它不应该。
我有以下声明
<?php echo ($total == 'Scratched' || ($total > 0 && $total < 65)) ? 'ffefef' : 'f7f7f7'; ?>
就在这句话之上,我回应$total
并回应0
在我定义的页面顶部
<?php $total = 0; ?>
,因此$total
被定义为整数。
上述if语句仅在$total > 64
时返回false,但在total为0时返回
提前致谢
答案 0 :(得分:6)
因为0 == 'Scratched'
// Strict comparison fixes it
echo ($total === 'Scratched' || ($total > 0 && $total < 65)) ? 'ffefef' : 'f7f7f7';
答案 1 :(得分:3)
这是有效的
<?php
$total = 0;
echo ($total === 'Scratched' || ($total > 0 && $total < 65)) ? 'ffefef' : 'f7f7f7';
?>
答案 2 :(得分:3)
根据您的具体情况而定。如果我理解得很好。如果0
,你的州不会接受它为假。
以上代码应该有效。但请尝试明确添加不等于零:
echo ($total === 'Scratched' || ($total > 0 && $total < 65 && $total != 0)) ? 'ffefef' : 'f7f7f7';
还添加了
===
以确保第一个类型为 string 的语句。
答案 3 :(得分:1)
使用===
来比较$total === 'Scratched'
和将要修复的内容
<?php echo ($total === 'Scratched' || ($total > 0 && $total < 65)) ? 'ffefef' : 'f7f7f7'; ?>
答案 4 :(得分:0)
您可以尝试严格比较:
<?php echo ($total === 'Scratched' || ($total > 0 && $total < 65)) ? 'ffefef' : 'f7f7f7'; ?>
由于比较字符串上的数字变量,字符串在数字上下文中计算并表示0。
您可以查看以下帖子: Comparing String to Integer gives strange results