Cannot use object of type stdClass as array
Ik loop tegen een foutje aan die ik zelf zo gauw niet ontdek.
De situatie:
Als persoon A inlogd met een betaald account is er geen melding en wordt de extra menuoptie getoont omdat persoon A een betaald account heeft en dus meer opties krijgt als persoon B die dat niet heeft.
Als persoon B inlogd zonder een betaald account krijg ik op de plek waar normaal deze optie zichtbaar is voor betaalde mensen de volgende error:
Quote:
Fatal error: Cannot use object of type stdClass as array in C:\wamp\www\donny\menu_rechts.php on line 37
Het script op en om de betreffende regel is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//bij de index pagina wordt een array $stat aangemaakt
// en dat werkte gister nog gewoon
// en de $user array wordt aangemaakt in een andere
// pagina, waarvandaan de gebruikers soms ook op deze
// pagina terecht komt.. dus dat is mijn logica erachter
// dat hij dan OF naar $stat['betaald'] == 'Ja' Kijkt of
// naar $user['betaald'] == 'Ja' kijkt. Zodra ik persoon B
// in de database ook op 'betaald = Ja' zet.. is de fout weg.
if(
(isset($stat['betaald']) && ($stat['betaald'] == 'Ja'))
||
(isset($user['betaald']) && ($user['betaald'] == 'Ja'))
){
// menu optie weergeven...
?>
//bij de index pagina wordt een array $stat aangemaakt
// en dat werkte gister nog gewoon
// en de $user array wordt aangemaakt in een andere
// pagina, waarvandaan de gebruikers soms ook op deze
// pagina terecht komt.. dus dat is mijn logica erachter
// dat hij dan OF naar $stat['betaald'] == 'Ja' Kijkt of
// naar $user['betaald'] == 'Ja' kijkt. Zodra ik persoon B
// in de database ook op 'betaald = Ja' zet.. is de fout weg.
if(
(isset($stat['betaald']) && ($stat['betaald'] == 'Ja'))
||
(isset($user['betaald']) && ($user['betaald'] == 'Ja'))
){
// menu optie weergeven...
?>
Iemand een ideetje wat ik fout doe?
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
Quote:
Fatal error: Cannot use object of type stdClass as array in C:\wamp\www\donny\menu_rechts.php on line 37
Volgens mij zegt PHP dat je een object (van een klasse) aanspreekt als array.
Dus $stat of $user is een object en geen array.
edit:
Ik vermoed dat $user een array is.
edit:
Je gebruikt ergens mysql_fetch_object ?
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
het moet zoiets worden:
Jongens bedankt.. ik moet me echt schamen..
Gelukkig heb ik het excuus dat ik al vanaf vanmorgen
5 uur aan het scripten ben.. sjonge jonge dat ik dit
over het hoofd zie.
Hey mannen bedankt hoor..
hij werkt weer..
Het moest precies zoals de post hierboven..
Nog een tip: uit het oogpunt van OOP is het beter om met setter en getter functies te werken, dus je membervariabelen niet rechtstreeks te benaderen.