Object Array, functie aanroepen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marco.NET

Marco.NET

24/12/2007 12:29:00
Quote Anchor link
Ik heb een array met objecten erin. Ik wil deze doorlopen door middel van een foreach. Hoe kan ik nu de object specifieke functies aanroepen?

Zie onderstaand voorbeeld. Zal vast niet moeilijk zijn, maar kan het niet vinden!

Alvast bedankt voor jullie hulp.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Fruit
{
   private $_naam;

   public function Fruit($naam)
   {
      $this->_naam = $naam;
   }

   public function GetNaam()
   {
      return $this->_naam;
   }
}

$vruchten = array();
$vruchten[] = new Fruit("Banaan");
$vruchten[] = new Fruit("Appel");
$vruchten[] = new Fruit("Peer");

foreach ($vruchten as $vrucht)
{
   // Onderstaand werkt niet, hoe moet ik dit doen?
   echo $vrucht->GetNaam();
}
 
PHP hulp

PHP hulp

20/11/2024 15:20:12
 
Jelmer -

Jelmer -

24/12/2007 12:34:00
Quote Anchor link
Dat zou gewoon moeten werken. Zo doe ik het ook altijd :)

Krijg je ook een foutmelding? Doe ook eens var_dump($vrucht) in plaats van de echo. Krijg je een uitdraai van je object, of NULL. Als je een uitdraai krijgt, is $_naam dan NULL of ook werkelijk Banaan.

Ik vermoedt dat je in de knoei loopt met Fruit() in plaats van __construct() als functienaam gebruiken op regel 5. Jij gebruikt daar de PHP4 notatie nog, terwijl je wel al bijvoorbeeld 'private $_naam' gebruikt, wat weer pas kan sinds PHP5. Maar PHP zou daar geen problemen mee mogen hebben. Wel typisch.
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
Marco.NET

Marco.NET

24/12/2007 12:35:00
Quote Anchor link
Marco.NET schreef op 24.12.2007 12:29:
Ik heb een array met objecten erin. Ik wil deze doorlopen door middel van een foreach. Hoe kan ik nu de object specifieke functies aanroepen?

Zie onderstaand voorbeeld. Zal vast niet moeilijk zijn, maar kan het niet vinden!

Alvast bedankt voor jullie hulp.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Fruit
{
   private $_naam;

   public function Fruit($naam)
   {
      $this->_naam = $naam;
   }

   public function GetNaam()
   {
      return $this->_naam;
   }
}

$vruchten = array();
$vruchten[] = new Fruit("Banaan");
$vruchten[] = new Fruit("Appel");
$vruchten[] = new Fruit("Peer");

foreach ($vruchten as $vrucht)
{
   // Onderstaand werkt niet, hoe moet ik dit doen?
   echo $vrucht->GetNaam();
}


Verrek... het voorbeeld werkt wel. Maar in mijn code niet... Dan moet het ergens anders aan liggen. Kom er nog op terug.
 
Marco.NET

Marco.NET

24/12/2007 12:36:00
Quote Anchor link
Jelmer schreef op 24.12.2007 12:34:
Dat zou gewoon moeten werken. Zo doe ik het ook altijd :)

Krijg je ook een foutmelding? Doe ook eens var_dump($vrucht) in plaats van de echo. Krijg je een uitdraai van je object, of NULL. Als je een uitdraai krijgt, is $_naam dan NULL of ook werkelijk Banaan.

Ik vermoedt dat je in de knoei loopt met Fruit() in plaats van __construct() als functienaam gebruiken op regel 5. Jij gebruikt daar de PHP4 notatie nog, terwijl je wel al bijvoorbeeld 'private $_naam' gebruikt, wat weer pas kan sinds PHP5. Maar PHP zou daar geen problemen mee mogen hebben. Wel typisch.


Ok, bedankt voor die tip alvast. Ben nog niet zo heel bekend met OOP in PHP5.
 
- SanThe -

- SanThe -

24/12/2007 12:42:00
Quote Anchor link
Niet Bumpen.
Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.