显示基于过滤器推荐的标题的单一方式


Single way to show title based on Filters recommendation

我有一个表单,有5个选项来过滤mysql的数据(开始日期,结束日期,用户,课程,级别),我想根据选择呈现一个带有自定义文本的标题,就像如果用户只选择日期,标题会说"数据从开始日期到结束日期),如果用户选择用户,那么将是"数据为用户从开始日期到结束日期,等等。使用if选项1 != " &&Option2 == "等。在这种情况下,我有25种可能的组合,有任何建议可以轻松处理这个问题,并认为如果在将来我想添加另一个过滤器,那将是30种组合,我将不得不再次重写if。对不起,如果这是一个愚蠢的问题,但我现在没有看到另一种清晰的方式。

我们简化一下:

$output = "";
if($user != ""){
      $output .= "User: " . $user . " ";
}
if($dateFrom != ""){
      $output .= "Start date: " . $dateFrom . " ";
}
if($dateTo != ""){
      $output .= "End date: " . $dateTo . " ";
}
echo $output;

您可以为用户创建一个消息,例如:

$response = "";
if($user_filter == true)
{
   if($response == "")
   {
        $response = "Data for user: ".$some_user;
   }
   eles
   {
        $response = $response." and from user: ".$some_user;
   }
}
if($date_filter == true)
{
   if($response == "")
   {
        $response = "Data from ".$start_date." to ".$end_date;
   }
   eles
   {
        $response = $response." and from ".$start_date." to ".$end_date;
   }
}

这样每个滤镜只有一个if。