值为零时PHP脚本错误

时间:2017-03-01 12:20:06

标签: php

我不明白一点。简单的switch语句无法正常使用零值(=0):

//$result = $sql->fetchColumn(); 
$result = 1;
      switch ($result) {    
          case $result <= 2 :
              throw new Exception('Error!');
              break;
                        }

问题是$result = 0然后输出应该是&#39;错误&#39;但在这种情况下脚本传递此验证。奇怪的问题,但我找不到问题。

2 个答案:

答案 0 :(得分:1)

你可以这样写:

<?php
switch ($i) {
case 0:
case 1:
case 2:
    throw new Exception('Error!');
    break;
case 3:
    echo "i is 3 or higher.";
}
?>

正如我在上面的评论中所说,你不能使用&#34; grater而不是&#34; &#34;小于&#34;在switch语句中。正如其他人所说,如果您想使用它们,请使用简单的IF语句。

答案 1 :(得分:0)

此代码

switch ($result) {    
      case $result <= 2 :

等同于

if($result == ($result <= 2))

以及何时

$result=0 

我们有

( 0 == true ) 

类型转换后

false === true

这是假设的错误