strings[$string] = $this->tunings[$string];   }   public function play($string)   {     return $this->strings[$string];   }   abstract public function select_pickup($pickup); } class les_paul extends guitar_abstract implements guitar_interface {   public function select_pickup($pickup)   {     if ($pickup != 1 && $pickup != 2) {       throw new guitar_exception("no such pickup: $pickup");     }     $this->pickup = $pickup;   } } class strat extends guitar_abstract implements guitar_interface {   public function select_pickup($pickup)   {     $pickup_array = array(1, 2, 3);     if(!in_array($pickup, $pickup_array)) {       throw new guitar_exception("no such pickup: $pickup");     }     $this->pickup = $pickup;   } } try {   $my_les_paul = new les_paul;   $my_les_paul->select_pickup(5); } catch (guitar_exception $e) {   echo $e->getMessage(); } ?>