php开关只使用默认代码块

时间:2017-02-21 16:49:15

标签: php

我有一个php switch语句,由于某种原因php开关只执行默认块中的默认代码但不在case块中,我检查我的变量是否先设置为isset,然后使用switch从我的数据库中选择数据这是代码

$sel = 1;
    $sql = "(select * from insurance_companies WHERE id='$eop' LIMIT $sel)";
    foreach ($pdo->query($sql) as $row){ 
    $cID = $row['id'];  
    $cname = $row['name'];          
    }
 if  (isset($cname)) {
                    switch ($cname) {
                        case 'CASH':
                            $query= "SELECT test FROM cash_procedures WHERE test LIKE '%$did%'";
                 $result= $con->query($query);
 break;

                        default:
                              $query= "SELECT test FROM procedures WHERE test LIKE '%$did%'";
                 $result= $con->query($query);

}
    }

如果我的$ cname变量与之匹配,我想执行案例代码,而是从默认代码块中的表返回结果。我在这里查看了不同的帖子PHP switch not working as expectedPHP switch "||" not working properlyPHP switch case default

但他们没有解决我的问题

1 个答案:

答案 0 :(得分:-1)

这是因为$cnameCASH不同。也许它不区分大小写?在$ cname上运行strtolower:

switch(strtolower($cname)) {
  case 'cash':
    echo 'got $$';
    break;
}