Non-Object error
Ik heb een class met daarin een array met objecten van een andere class als instance variabele.
Als ik deze array wil foreach-en(for geeft overigens hetzelfde probleem) krijg ik de volgende error:
Weet iemand hoe dit komt, of nog beter; hoe dit op te lossen is?
Bij voorbaat dank.
Als ik deze array wil foreach-en(for geeft overigens hetzelfde probleem) krijg ik de volgende error:
Quote:
Fatal error: Call to a member function getItem() on a non-object in url on line 27
Weet iemand hoe dit komt, of nog beter; hoe dit op te lossen is?
Bij voorbaat dank.
Gesponsorde koppelingen:
Heb je misschien een stukje code?
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
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
class Menu{
private $items;
public function Menu(){
$this->items = array();
}
public function addItem($naam,$subitems){
$parent=&$_SESSION['currentitem'];
$item = new menuItem($naam,$subitems,$parent);
array_push($this->items,$subitems);
}
...................
public function subItems(){
for($i=0;$i<count($this->items);$i++){ //mijn regel 27 met de fout
if($items[$i]->getSubitems()>0){
return false;
}
}
return true;
}
}
?>
class Menu{
private $items;
public function Menu(){
$this->items = array();
}
public function addItem($naam,$subitems){
$parent=&$_SESSION['currentitem'];
$item = new menuItem($naam,$subitems,$parent);
array_push($this->items,$subitems);
}
...................
public function subItems(){
for($i=0;$i<count($this->items);$i++){ //mijn regel 27 met de fout
if($items[$i]->getSubitems()>0){
return false;
}
}
return true;
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Aron K
Blijkbaar doe je iets als
Maar var is geen object en heeft dus geen method getItem.
controlleer dus of de variabele een object is en het juiste object.
Gebruik daarvoor de operator 'instanceof'.
Maar var is geen object en heeft dus geen method getItem.
controlleer dus of de variabele een object is en het juiste object.
Gebruik daarvoor de operator 'instanceof'.
Gewijzigd op 01/01/1970 01:00:00 door Arian Stolwijk
Dat returnt een false, dus ergens gaat er iets niet bij het vullen van de array.
Er zat een fout in, die zou er uit moeten zijn door:
te verangen door:
Maar nog steeds gaat het niet goed, kan iemand mij vertellen waar precies?
Er zat een fout in, die zou er uit moeten zijn door:
te verangen door:
Maar nog steeds gaat het niet goed, kan iemand mij vertellen waar precies?
Doe eens var_dump($this->items); Kijken of dat iets uit maakt.
Dan krijg ik:
array(5) { [0]=> object(menuItem)#4 (5) { en dat gaat nog even verder.
Maar als ik controleer of het een instantie is van menuItem dan krijg ik false terug.
array(5) { [0]=> object(menuItem)#4 (5) { en dat gaat nog even verder.
Maar als ik controleer of het een instantie is van menuItem dan krijg ik false terug.
en wat geeft is_object($this->items[0]); terug?
Dat geeft true terug, en ik heb de fout gevonden:
Moest zijn:
Iig bedankt allemaal, ik kan weer verder.
Moest zijn:
Iig bedankt allemaal, ik kan weer verder.
Gewijzigd op 01/01/1970 01:00:00 door Aron K
Ik ben ook pas een maandje of twee bezig met classes, dat wil ik ook nog wel eens vergeten :P
Ik programmeer bijna dagelijks met classes, alleen dan in Java, daarmee hoeft dat allemaal niet.
Vandaar dat ik het ook steeds weer vergeet.
PHP moet nog een hoop vorderen op het gebied van OOP.
Vandaar dat ik het ook steeds weer vergeet.
PHP moet nog een hoop vorderen op het gebied van OOP.



