Cannot use object of type stdClass as array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marvin S

Marvin S

24/10/2007 20:33:00
Quote Anchor link
Beste mensen,

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)
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
<?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...
 ?>

Iemand een ideetje wat ik fout doe?
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
 
PHP hulp

PHP hulp

25/04/2024 06:27:05
 
Martijn B

Martijn B

24/10/2007 20:44:00
Quote Anchor link
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
 
Jan Koehoorn

Jan Koehoorn

24/10/2007 20:47:00
Quote Anchor link
Je mag deze notatie dus niet gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    $stat
['betaald']
?>

het moet zoiets worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    $stat
->betaald;
?>
 
Marvin S

Marvin S

24/10/2007 21:05:00
Quote Anchor link
Aawhhh..

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..
 
Jan Koehoorn

Jan Koehoorn

24/10/2007 21:13:00
Quote Anchor link
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.
 



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.