|
| 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);
| |
|
|