Avatar billede yoka Nybegynder
21. juni 2009 - 20:56 Der er 5 kommentarer

Hurtigt spørgsmål om variabler i klasser...

Hej.  be warned, jeg er lige begyndt med OOP i PHP :)

Jeg har en side hvor jeg starter med at lave en:

$con = new MySQLConnect("localhost","root","root"); // opretter forbindelse

herefter følger en masse klasser der gerne skulle kunne bruge variablen $con til at lege med databaser, problemet er at jeg får fejlen:

"Call to a member function CreateResultSet() on a non-object "

Jeg kan altså ikke accesse methods via denne variabel når de ligger uden for egen klasse. For hvis jeg initere en ny MySQLConnect klasse i hver enkelt klasse virker det. Mister variabler uden for en klasse deres betydning. Er det meningen at jeg skal putte alle mine klasser ind i en kæmpe klasse så de kan dele variabler? Hvad er den nemmeste måde at dele sådanne data imellem en masse klasser på?

På Forhånd Tak!
Avatar billede majbom Novice
21. juni 2009 - 21:04 #1
du skal lave dit objekt globalt...
Avatar billede coderdk Praktikant
21. juni 2009 - 23:44 #2
$this->con =

mener du vel? ;)
Avatar billede majbom Novice
22. juni 2009 - 08:36 #3
nej hvis du har en fil med funktioner og du uden for funktionerne instancierer dit objekt, skal du i de funktioner der skal bruge objektet, starte med:

global $con;

ellers har funktionen ikke adgang til den...
Avatar billede repox Seniormester
22. juni 2009 - 09:22 #4
Det virker ikke helt gennemtænkt at skulle sætte en global variabel på den måde.

Jeg kan ikke helt se hvad problemet er i at skulle instanciere mysql objektet i de klasser der skal bruge den.
Hvis du ikke vil bruge flere connections på den måde, så overvej at bygge singleton mønstret ind i din mysql klasse.
Avatar billede majbom Novice
04. november 2010 - 12:45 #5
lukketid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester