Avatar billede jackonlinux Nybegynder
04. februar 2003 - 14:24 Der er 5 kommentarer og
1 løsning

Class og levetid

Se jeg programmerer normalt C++ og har så ved siden af det hele en opgave i PHP.

Jeg har oprettet en klasse, som indeholder en del
forskellige variabler. F.eks. åbner jeg en database
connection med:
obj.OpenConnection();

og bagefter vil jeg så f.eks. noget i stil med:
obj.IncrementCouner();

Mit problem er bare at det $Link jeg får tilbage af mysql_query og en $Con fra mysql_open() ikke lader til at virke? jeg smider dem i variabler af klassen
og vil så naturligvis senere lave en:
obj.Close();
men intepreteren fortæller mig så at $Link ikke er et gyldigt link???
Skulle de variabler ikke gerne være de samme, som da de blev tildelt en værdi? Nu tænker jeg på at variablerne findes i klassens scope naturligvis.
Avatar billede Slettet bruger
04. februar 2003 - 14:41 #1
Hmm... smid lige lidt kode tak!?

Btw... husk at gemme og kalde klassen variabler på formen:
$this->Link = mysql_query();
$this->Con = mysql_open();
Avatar billede jakoba Nybegynder
04. februar 2003 - 14:45 #2
"jeg smider dem i variabler af klassen"
det kan du ikke. de skal smides i undervariabler indeni klassen

idet du siger
    $obj = mysql_connect($x,$y,$z);
omdefinerer du variablen $obj så det ikke mere er en klasse. nu er det et link til din connection og ikke andet (eller måske en boolean med værdien 'false').


class min_db {
    var $conn;                // en lokal variabel i klassen minDb

    function min_db(){};

    function min_connect( $x,$y,$z ) {
        $this->conn = mysql_connect($x,$y,$z);
    }
}

først skal du lave et eksemplar af den klasse:
    $instans = new min_Db();
du kan så initiere den locale conn for den instans af klassen indefra:
    $instans->min_connect( $domain,$user,$pass );
eller udefra:
    $instans->conn = mysql_connect($x,$y,$z);

mvh JakobA
Avatar billede jackonlinux Nybegynder
05. februar 2003 - 18:20 #3
Den er jeg hélt med på :) Problemer er at variablen aldrig bliver >0 ??
Avatar billede Slettet bruger
05. februar 2003 - 18:28 #4
Seriøst så sidder vi og gætter i blinde!?
Med mindre du kommer med nogle konkrete oplysninger om, hvor det går galt er det ret svært for os at give et svar!
Hvad angår OO i PHP er det er simpelt samlignet med C++ og Java f.eks. er en variabel tilskrevet en værdi er den tilgængelig både uden for og inden for objectet.
Du kann sågar erklære variabler til en klasse uden for klassen!
(Dog skal du have slået warnings fra for at lave disse "tryllerier"!)

Kode TAK!
Avatar billede jackonlinux Nybegynder
10. marts 2003 - 08:26 #5
Svar jakoba
Avatar billede jakoba Nybegynder
10. marts 2003 - 08:56 #6
ok
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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