/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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);


Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste