OOP probleem

Gestart doorJenner11 reacties50 weergaven

12 berichten · pagina 1 van 1

Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hallo, (Al weer het 3de topic vanochtend sorry)

Ik gebruik nu de mysql class van Rik.
Maar nu wil ik hem gaan gebruiken in een andere class.

De class van Rik draait al dus hij begint niet in de class.

Ik roep een query zo aan:
$db->query("QUERY");

Maar als ik dit in de class zegt hij dat de variabele $db er niet is.
Dus heb ik het al met global geprobeert maar dat werkt niet sadleyWie kan mij helpen?

Alvast bedankt smile
0
Erik

Lid

Berichten
7.109
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Heb je de class wel aangemaakt? ($db = new ...)
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ja, want verder werkt hij.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Uhm, je moest hem inderdaad globaal aanroepen. Luuk had daar een fixje voor volgens mij, ik zal even zoeken.
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Volgens Lennard moet je het als paramater mee geven.
Dus eerst:
$db = new mysqlclassnaamhier();
$andere_class = new andereclassnaamhier($db);

in je class zet je public $db;
in je __construct functie zet je dan $ths->db = $db_parameter;
Niet helemaal duidelijk maarjaemo
Rik schreef:
Uhm, je moest hem inderdaad globaal aanroepen. Luuk had daar een fixje voor volgens mij, ik zal even zoeken.
Dat was voor functies, niet voor in classes, kan overigens zijn dat het in classes wel gewoon werkt, maar dat weet ik niet emo
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Oftewel, je kan proberen in je andere class: "global $db;" te zetten xD
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Unexpected global, expecting function
Dat werkt dus niet...
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Kun je het even in dit voorbeeld zetten?

class voorbeeld{
     function __construct(){
          
     }
     function selecteer(){
         $db->query("SELECT * FROM `gebruikers` WHERE `actief` = 1");
     }
}
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/class"]class[/URL] voorbeeld[COLOR= #007700]{[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #0000BB]$db[/COLOR][COLOR= #007700];
    function[/COLOR] __construct[COLOR= #007700]([/COLOR][COLOR= #0000BB]$db[/COLOR][COLOR= #007700]){[/COLOR]
        [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]db [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$db[/COLOR][COLOR= #007700];
    }
    function[/COLOR] selecteer[COLOR= #007700](){[/COLOR]
        [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]db[COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT * FROM `gebruikers` WHERE `actief` = 1"[/COLOR][COLOR= #007700]);
    }
}[/COLOR]
?>


aanroepen zoals ik eerder zei
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ahh, nu doet hij het bedankt smile
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Graag gedaan wink
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Luukvdo schreef:
Unexpected global, expecting function
Dat werkt dus niet...
Je moet het ook in je constructor doen, maar geen idee of het dan wel werkt, is ook best wel een bout-oplossing dan. emo
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren