Object Array, functie aanroepen
Zie onderstaand voorbeeld. Zal vast niet moeilijk zijn, maar kan het niet vinden!
Alvast bedankt voor jullie hulp.
Code (php)
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
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();
}
{
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();
}
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 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.
Zie onderstaand voorbeeld. Zal vast niet moeilijk zijn, maar kan het niet vinden!
Alvast bedankt voor jullie hulp.
Code (php)
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
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();
}
{
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.
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.
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.
Bumpen::
SanThe.