$key = substr($sn, 0, 1); $promoMap = $this->_getPromoMap(); $promoName = array_key_exists($key, $promoMap) ? $promoMap[$key] // 決定促銷類別名稱 : $promoMap['*']; // 預設的促銷類別 $promo = new $promoName(); $this->_products[$sn] = new Product($sn, $price, $promo); } // ... } 修改後