我有一个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 expected,PHP switch "||" not working properly和PHP switch case default
但他们没有解决我的问题
答案 0 :(得分:-1)
这是因为$cname
与CASH
不同。也许它不区分大小写?在$ cname上运行strtolower:
switch(strtolower($cname)) {
case 'cash':
echo 'got $$';
break;
}