1 php syntax logic conditional-statements
我已经挖了一下,但我似乎无法找到一个简单的答案,为什么你不能编码类似的东西
<?php
$x=2;
if(1<$x<3) {
echo "Win!";
} else {
echo "Lose!";
}
?>
Run Code Online (Sandbox Code Playgroud)
我的直觉说因为PHP左右读取,它会评估语句的前半部分(1<$x),然后只看到<3,这是没有意义的.我只是想让某人确认(或反驳)这种情况,并且每当你在PHP中提供条件时,你必须将每个条件分开.我不知道这是否会被称为逻辑或语法或其他东西,但你可以在其他上下文(如SAS)中编写这样的表达式并对它们进行评估,所以我只想理解为什么你不能在PHP.谢谢!
PHP评估1 < $x,然后将结果与之比较3.换句话说,如果添加括号,PHP会将其视为((1 < $x) < 3).
如果1 < $x是,则比较变为1 < 3; 如果是假的,那就是0 < 3.这是由于类型转换(从布尔到整数).两者都评估为true,因此始终满足if条件.
你确实必须这样写它:
if (1 < $x && $x < 3)
Run Code Online (Sandbox Code Playgroud)