如何用速记if-else语句链接四个条件

时间:2015-09-24 10:14:41

标签: php if-statement

我在我的网站上显示一张Google地图,根据数据库中的坐标循环显示多个值。

有四种不同类型的合作伙伴,这些合作伙伴用不同颜色的标记针突出显示。

到目前为止,我使用简写的if-else语句成功显示了3种不同颜色的标记。如何在此添加一个条件以显示Type4的最终彩色标记?

<?php
$markers = array();
foreach ($current as $key => $value) {

$markers[] = array(
  'latLng' => array($value['Partner']['lat'], $value['Partner']['lon']),
  'options' => array(
    'icon' => $this->Html->url('/img/icons/'.($value['Partner']['type1'] ? 'pink-pin.png' : ($value['Partner']['type2'] ? 'green-pin.png' : 'purple-pin.png'))),
  ),
  'data' => array(
    'html' => 
      '<p>'.$value['Partner']['name'].'</p>'
  ),
);
}
?>

1 个答案:

答案 0 :(得分:0)

我不建议在这种情况下使用速记条件,因为它会变得非常复杂和不可行。

相反,使用if-else语句链:

<?php
$markers = array();
foreach ($current as $key => $value) {
    if($value['Partner']['type1']) {
        $icon = 'pink-pin.png';
    } elseif($value['Partner']['type2']) {
        $icon = 'green-pin.png';
    }  elseif($value['Partner']['type3']) {
        $icon = 'black-pin.png';
    } else {
        $icon = 'blue-pin.png';
    }

    $markers[] = array(
        'latLng' => array($value['Partner']['lat'], $value['Partner']['lon']),
        'options' => array(
            'icon' => $icon,
        ),
        'data' => array(
            'html' => '<p>' . $value['Partner']['name'] . '</p>'
        ),
    );
}
?>

您可以根据需要添加或删除任意数量的类型。