mboost-dp1

php class destruction..!


Gå til bund
Gravatar #1 - KarmicMind
5. nov. 2005 18:42
Hey nørder..!

Så vidt jeg har lært, så kan man, når man definerer en class, også definere en funktion, der automatisk bliver udført, når classen tildeles en variabel, nemlig ved at give funktionen samme navn som classen..

Findes der en lignende metode til at få php til at gøre noget bestemt, når classen slettes, enten med unset() eller når scriptet afsluttes..?

Det kunne jo f.eks. være til fordel, hvis man nu laver en class, der indeholder data fra en databasetabel, der bliver ændret mange gange i løbet af et script.. Altså at classen henter de relevante data fra databasen, når den bliver oprettet, og gemmer eventuelle ændringer, når den bliver slettet igen..
Gravatar #2 - mazing
5. nov. 2005 19:59
Jeg ville bare lave en funktion som gør alle de relevante ting (gemmer oplysningerne i databasen f.eks.) og så derefter unset()'er den.
Gravatar #3 - mat
5. nov. 2005 23:47
Det lyder som konceptet i en constructor og en destructor, hvis du søger på disse kan du sikkert finde svar?

Man sletter ikke en klasse, man sletter objekter.

mvh mat
Gravatar #4 - Blinklys
6. nov. 2005 12:26
Jeg tror #3 har ret. Det er en destructor du gerne vil have fat i. Jeg mener ikke PHP 4 har destructors, men PHP 5 har.
Gravatar #5 - KarmicMind
6. nov. 2005 15:44
Tja, nu er det desværre PHP 4 jeg bruger.. Er der et smart work-around trick man ka lave..?
Gravatar #6 - Simm
6. nov. 2005 17:32
Jeg ville nok lave en funktion til at slette dine objekter.

function DBConnect(){
opret forbindelse til db.. mv.
}

function DBConnect_close(){
mysql_close($dbconn);
unset($dbconn);
}

osv..

Det gør efter min mening din kode mest overskuelig og nemmere at vedligeholde.
Gravatar #7 - cypres
13. nov. 2005 21:59
Det er korrekt at PHP4 ikke har en destructor indbygget, men den har: register_shutdown_function()
Hvilket helt klart skulle løse dine problemer.

Iøvrigt overvej PHP manualen, se note 2 på denne side, ikke for at sige du ikke må spørge herinde eller noget, men manualen bør være det første sted du søger dine svar.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login