我绝不是 PHP 专家。我可以阅读它,但写它超出了我的能力。我试图找到写这个 if 语句的最短最有效的方法。这是我网站上的过滤器。过滤器根据用户所做的选择显示业务。问题是我不知道如何将其编码到用户可以选择多个过滤器的位置。我很确定这与我的 && 语句有关。请查看我的代码并告诉我我做错了什么。我已经搜索过,但我找不到任何与我的情况有关的东西。
if($tghtcrl!="" && $lsecrl!="" && $wavy!="" && $strt!="")
{
$vWhereClause .= " AND (specialty='".$wavy."' OR specialty='".$strt."' OR specialty='".$tghtcrl."' OR specialty='".$lsecrl."')";
}
else
{
if($tghtcrl!="")
{
$vWhereClause .= " AND specialty='".$tghtcrl."' ";
}
if($lsecrl!="")
{
$vWhereClause .= " AND specialty='".$lsecrl."' ";
}
if($wavy!="")
{
$vWhereClause .= " AND specialty='".$wavy."' ";
}
if($strt!="")
{
$vWhereClause .= " AND specialty='".$strt."' ";
}
}
先生们将不胜感激任何帮助。else 语句负责单数选择,而开头的 if 语句负责选择所有 4 个。但是在两者之间进行选择呢?我觉得答案就在我眼前。下面的代码是@h2ooooooo 提供的更新代码。
if($tghtcrl!="" && $lsecrl!="" && $wavy!="" && $strt!="")
{
$vWhereClause .= " AND (specialty='".$wavy."' OR specialty='".$strt."' OR specialty='".$tghtcrl."' OR specialty='".$lsecrl."')";
}
else
{
$variables = array($tghtcrl, $lsecrl, $wavy, $strt);
foreach ($variables as $variable)
{
if ($variable!="")
{
$vWhereClause .= " AND specialty='".$variable."' ";
}
}
}