是否可以使用开关盒设置不同的输出?

时间:2017-06-15 07:47:45

标签: php switch-statement

我已经想出如何做到这一点。我已将位置名称作为第三个参数从show.data_inline_location返回到location.php上,通过包含位置名称返回函数,如下所示:

show_data_inline_city($data['Cars_In_Location'], 'car', $data['Name']);

然后在函数本身中我添加了以下参数:

function show_data_inline_location($data, $type, $location_name)

并添加此项以创建URL友好字符串:

$loc_name = strtolower(str_ireplace(" ","-", $location_name));

然后回应这个:

echo '<a href="'.$link_url.$name.'-in-'.$loc_name.'"><div class="overlay">'.PHP_EOL;

这样我就不需要在开关中分离外壳,只需要将它用于'car'和'location'之间的区别:

if ($type == 'car') { echo 'this'; }
if ($type == 'location') { 'that'; }

感谢您的所有帮助。

2 个答案:

答案 0 :(得分:0)

如果在$data数组中有一辆车和一个位置,那么您可以执行以下操作来保存变量并在以后使用它们:

$loc_name = '';
$car_name = '';
foreach ($data as $key => $value) {
          if ( is_special_car($value['name']) ) 
             continue;

    switch ($type) {
        case 'car':
            $car_name = $name;
            break;
        case 'location':
            $loc_name = $name;
             break;
        default:
            break;
    }
    if($loc_name && $car_name){
         //You have a car and loc name now
    }
}

如果您的$data数组不同,则必须修改代码,当您在获取完所需内容后,可能需要重置$loc_name$car_name

答案 1 :(得分:0)

我已经弄清楚如何做到这一点。我已将位置名称作为第三个参数从show.data_inline_location返回到location.php上,通过包含位置名称返回到函数,如下所示:

show_data_inline_city($data['Cars_In_Location'], 'car', $data['Name']);

然后在函数本身中我添加了以下参数:

function show_data_inline_location($data, $type, $location_name)

并添加此项以创建URL友好字符串:

$loc_name = strtolower(str_ireplace(" ","-", $location_name));

然后回应这个:

echo '<a href="'.$link_url.$name.'-in-'.$loc_name.'"><div class="overlay">'.PHP_EOL;

这样我就不需要在开关中分离外壳,只需要用它来区分“汽车”和“汽车”之间的区别。和&#39; location&#39;:

if ($type == 'car') { echo 'this'; }
if ($type == 'location') { 'that'; }

感谢您的所有帮助。