Php 基于过滤器建议显示标题的单一方法

Php 基于过滤器建议显示标题的单一方法,php,Php,我有一个带有5个选项的表单来过滤mysql中的数据(开始日期、结束日期、用户、课程、级别),我想根据选择提供一个带有自定义文本的标题,比如如果用户只选择日期,标题会说“从开始日期到结束日期的数据”,如果用户选择用户,则会是“用户从开始日期到结束日期的数据,依此类推。 使用if选项1进行所有可能的组合是一件令人头痛的事情!=“”&&option2==“”等。在这种情况下,我有25种可能的组合,有任何建议可以轻松处理,并认为如果将来我想添加另一个过滤器,它将是30种组合,我必须再次重写if。抱歉,如

我有一个带有5个选项的表单来过滤mysql中的数据(开始日期、结束日期、用户、课程、级别),我想根据选择提供一个带有自定义文本的标题,比如如果用户只选择日期,标题会说“从开始日期到结束日期的数据”,如果用户选择用户,则会是“用户从开始日期到结束日期的数据,依此类推。
使用if选项1进行所有可能的组合是一件令人头痛的事情!=“”&&option2==“”等。在这种情况下,我有25种可能的组合,有任何建议可以轻松处理,并认为如果将来我想添加另一个过滤器,它将是30种组合,我必须再次重写if。抱歉,如果这是一个愚蠢的问题,但我现在看不清楚它的另一种方式。

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

$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;
   }
}
这样,您就可以为每个过滤器添加一个,如果…

让我们简化一下:

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

echo $output;

谢谢兄弟!这对我来说是最干净的方式:)我最近遇到过这种情况,我也用过类似的方法