---
title: "Skappa dynamiska arrays i en class"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/47657-skappa-dynamiska-arrays-i-en-class"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Ryzzen"
published: "2002-07-10T19:20:48.000Z"
updated: "2002-07-11T08:15:47.000Z"
replies: 7
views: 238
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/47657-skappa-dynamiska-arrays-i-en-class"
---

# Skappa dynamiska arrays i en class

## #1 — Ryzzen, 2002-07-10T19:20Z

Har sutit och funderat lite på hur jag skall skappa en array som jag sen kan lägga till data i efterhand jag kommer på att det behövs. Alltså en dynamisk.

Förut gick det typ att göra så här:
$AccessArray\[count($AccessArray)\] = "Lite data";

Får det inte att funka när jag håller på med klasser. Tänkta att typ deta borde funka:
$this-\>AccessArray\[count($this-\>AccessArray)\] = "Lite data";

stycket ligger i en funktion i en klass. Så det är typ en global variabel för klassen.

Permalänk: https://www.webforum.nu/p/47657

## #2 — SPiN, 2002-07-10T20:05Z

Använd array_push() och array_pop():

```
class MinKlass {
     private $minArray;

     function add( $värde ) {
          array_push( $this->minArray, $värde );
     }

     function pop() {
          return array_pop( $this->minArray );
     }
}

$instans = new MinKlass();
$instans->add( "där." );
$instans->add( "Hej " );
echo $instans->pop();
echo $instans->pop();
// Borde resultera i output:en Hej där.
```

Vill du inte poppa en array ( Alltså ta ut sista värdet först ) kan du använda array_shift() för att få ut det första värdet först. Notera dock att båda dessa funktioner tar bort det returnerade värdet från arrayen.

Permalänk: https://www.webforum.nu/p/719575

## #3 — Ryzzen, 2002-07-10T21:34Z

OK

Men du vet inte hur jag kan få innehållet kvar?

Grejen är en att jag gör en databas sökning och skappar en array av resultat. Resultat behöver jag ibland kontroller flera gåner på samma sida. Så då tänkte jag om jag skappar en array med allt innehåll. Då slipper jag belasta databaserven varje gång.

Permalänk: https://www.webforum.nu/p/719622

## #4 — SPiN, 2002-07-10T22:09Z

> Men du vet inte hur jag kan få innehållet kvar?

Då får du använda dig av en vanlig array och skriva egna add() och pop() funktioner.

```
class MinKlass {
     private $minArray;
     private $minKontroll;

     function MinKlass() {
          $this->minKontroll = 0;
     }

     function add( $värde ) {
          $this->minArray[] = $värde;
          $this->minKontroll++;
     }

     function pop( $värde ) {
          return $this->minArray[ --$this->minKontroll ];
     }

     function get( $index ) {
          if( isset( $this->minArray[ $index ] ) )
               return $this->minArray[ $index ];
          else
               return false;
     }
}
```

Jag lade också till en funktion för att du ska kunna hämta värden från arrayen via ett angivet index, dvs. funktionen get().

Permalänk: https://www.webforum.nu/p/719649

## #5 — SPiN, 2002-07-10T22:11Z

Notera att nyckelordet **private** endast finns iom PHP 4.3! Har du en lägre version av PHP får du använda nyckelordet **var** istället, men då är variablerna inte privata.

Permalänk: https://www.webforum.nu/p/719650

## #6 — Ryzzen, 2002-07-10T22:17Z

Tackar för ditt svar..skall kolla på det i morgon..Har totalt tröttnat på PHP för i dag...

Och jag som tyckte att jag var så duktig som gjorde om mina gammla funktioner till ett klass system i stället  :(

Permalänk: https://www.webforum.nu/p/719652

## #7 — SPiN, 2002-07-10T22:19Z

Varför fungerade inte det då? Det borde ju gå galant. :)

Permalänk: https://www.webforum.nu/p/719655

## #8 — Ryzzen, 2002-07-11T08:15Z

JAAAA det funkar..

Fast jag byggde om det lite..
Skippade dina funktioner. Den gammla koden var:
$this-\>AccessArray\[count($this-\>AccessArray)\] = $Data\['grpName'\];

Skrev i stället bara:
$this-\>AccessArray\[\] = $Data\['grpName'\];

Och det funkade!!!!

Permalänk: https://www.webforum.nu/p/719735

---

Tråden på webben: https://www.webforum.nu/amne/php/47657-skappa-dynamiska-arrays-i-en-class
