| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Objekt/datastruktur Fra : Leif Neland | 
  Dato :  01-03-10 20:28 |  
  |   
            Hvorledes deklarerer man en datastruktur, så man kan referere til disse 
 elementer:
 $kurv->ordrenr;
 $kurv->total;
 count($kurv->varer);
 $kurv->varer[0]['varenr'];
 $kurv->varer[0]['antal'];
 
 
 Samme måde som man kan have et resultatsæt fra et mysql-kald.
 
 Som variable, ikke via funktioner.
 
 
 -- 
 Jeg foretrækker min the tilberedt efter BS6008
  
            
             |   |   
            
        
 
            
         
           Bertel Lund Hansen (01-03-2010) 
         
	
            | Kommentar Fra : Bertel Lund Hansen | 
  Dato :  01-03-10 20:47 |  
  |  
 
            Leif Neland skrev:
 > Hvorledes deklarerer man en datastruktur, så man kan referere til disse 
 > elementer:
 > $kurv->ordrenr;
 > $kurv->total;
 > count($kurv->varer);
 > $kurv->varer[0]['varenr'];
 > $kurv->varer[0]['antal'];
 Med klasser:
 class Vare {
    var $varenr;
      var $antal
      function Vare ($vnr,$ant) {
         $this->varenr=$vnr;
         $this->antal=$ant;
      }
 }
 class Ordre {
      var $ordrenr;
      var $total;
      var $varer=array();
      function Kurv ($onr) {
         $this->ordrenr=$onr;
      }
 }
 $kurv = new Ordre(117);
 $taperecorder = new Vare(23,1);
 $kurv->varer[]=$taperecorder;
 echo $kurv->ordrenr;
 echo $kurv->total; // Ikke beregnet - jeg ville bruge en
 funktion.
 echo count($kurv->varer);
 foreach ($kurv->varer as $vare) {
      echo $vare->varenr;
      echo $vare->antal."\n";
 }
 -- 
 Bertel
 http://bertel.lundhansen.dk/         FIDUSO:  http://fiduso.dk/
            
             |   |   
            
        
 
            
         
           Martin (01-03-2010) 
         
	
            | Kommentar Fra : Martin | 
  Dato :  01-03-10 22:29 |  
  |   
            On 01-03-2010 20:47, Bertel Lund Hansen wrote:
 > Leif Neland skrev:
 >
 >> Hvorledes deklarerer man en datastruktur, så man kan referere til disse
 >> elementer:
 >> $kurv->ordrenr;
 >> $kurv->total;
 >> count($kurv->varer);
 >> $kurv->varer[0]['varenr'];
 >> $kurv->varer[0]['antal'];
 >
 > Med klasser:
 >
 > class Vare {
 >    var $varenr;
 >       var $antal
 >       function Vare ($vnr,$ant) {
 >          $this->varenr=$vnr;
 >          $this->antal=$ant;
 >       }
 > }
 
 og lidt mere PHP5'et
 
 class Vare {
     protected $varenr = 0;
     protected $antal = 0;
     protected $price = 0;
 
     static public function addItem($nummer, $antal, $eachprice)
     {
       $self = new self;
       $self->varenr = $nummer;
       $self->antal = $antal;
       $self->price = $eachprice;
       return $self;
     }
 
 }
 
 class Ordre {
 
     protected $items = array();
 
     protected $order = 0;
 
     public function __construct($ordrenumber) {
       $this->order = $ordrenumber;
     }
 
     public function addItem(Vare $vare)
     {
       $this->items[] = $vare;
         array('nr' => $vare->varenr, 'count' => $vare->antal);
     }
 
     public function getTotalPrice()
     {
       $items = $this->__toString();
 
       $price = 0;
       foreach($items AS $item) {
         $price += $item['totalprice'];
       }
       return $price;
     }
 
     public function __toString()
     {
       $out = array();
       foreach($this->items AS $item) {
         $out[] = array(
             'nr' => $vare->varenr,
             'antal' => $vare->antal,
             'eachprice' => $vare->price,
             'totalprice' => $vare->antal * $vare->price
           );
       }
       return $out;
     }
 }
 
 $order = new Ordre(117);
 $order->addItem(
     Vare::addItem(1, 1, 19.95)->addItem(2, 2, 25.00)->addItem(3, 1, 17.85)
 );
 
 echo 'Totalprice: ' . $order->getTotalPrice();
 
 var_dump($order);
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |