php - 开关函数输出默认值而不是期望值

标签 php mysql switch-statement

我正在尝试使用以下代码实现一个简单的开关功能。

$query = "SELECT * FROM entries where Venue='Condamine' and Year='2018' and 
Event='$5,000 Novice'  and herd='2' and scratched IN('n','l')  ORDER BY Draw 
ASC";
// Execute the query
$result = mysqli_query($con ,$query);
if (!$result){
    die ("Could not query the database: <br />". mysqli_error());
}
// Change herds
function getherd($catch) { 
    switch($catch) 
    { 
        case '2': 
            return 'Herd Change'; 
        break; 
        default: 
            return 'Damn!'; 
        break; 
    } 
} 
$catch = $row["herd"];
echo "<tr>";
echo "<td bgcolor=#FFFFFF><strong> ". getherd($catch) ." </strong></td>";
echo "<td bgcolor=#FFFFFF>&nbsp;</td>";
echo "</tr>";
?>

我的结果是打印出默认值“Damn!”而不是期望值“Herd Change”我做错了什么。如果行的值 herd = 2,我想打印出单词“Herd Change”。

最佳答案

很可能是类型转换问题

尝试

$catch = string($row["herd"]); 并确保 $catch 为 2

关于php - 开关函数输出默认值而不是期望值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47786156/

相关文章:

mysql - 尝试并捕获插入 MySQL 中的 MysqlCmd.ExecuteNonQuery

php - 为什么选择选项上的 .click() 只能在 Firefox 上使用?

mysql - 在静态库中链接 Mysqllib (MAC OS X.8.4, Xcode 4.6.3)

javascript - 如果验证失败需要清除输入文本

php - 如何在一个sql查询中加入3个表?

c# - 在 switch case 中,如果我们将 "default"写为任何单词或单个字母,它不会抛出错误

php - 为什么这个 switch 语句不返回 0 在 0-100 之间?

r - 零索引的 Switch 语句

java - 获取空指针并转换结果 java.lang.NullPointerException : lock == null

php - 为 php 安装 bzip2