Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Objekte instanzieren und ... freigeben ? (https://www.delphipraxis.net/64907-%5Bphp%5D-objekte-instanzieren-und-freigeben.html)

jensw_2000 9. Mär 2006 19:11


[PHP] Objekte instanzieren und ... freigeben ?
 
Hi Leute,

ich bin grade dabei PHP zu lernen.
Das 1 x 1 funktioniert schon recht gut, aber zu OOP mit PHP habe ich mal eine generelle Frage.

Ich habe eine Klasse ..
Code:
<?php
// Testklasse
class TTest
{
    var $str_1 = "ein String";
    var $str_2 = "noch ein String";
    var $int_1 = 1;
};
und erstelle von dieser eine Instanz...
Code:
$Test = new TTest;

Muss ich $Test am Ende des Scripts irgendwie wieder freigeben ?
Wenn ja, wie ? Reicht ein einfaches unset($Test); ?
Wenn nicht.. wann gibt PHP das Objekt wieder frei ?
Habe ich ein Speicherleck, wenn ich die Seite ein 2. mal aufrufe, und $Test nicht vorher zerstöre ?



Schöne Grüße,
Jens
:hi:

yankee 9. Mär 2006 19:54

Re: [PHP] Objekte instanzieren und ... freigeben ?
 
Zitat:

Zitat von jensw_2000
Muss ich $Test am Ende des Scripts irgendwie wieder freigeben ?
Wenn ja, wie ? Reicht ein einfaches unset($Test); ?
Wenn nicht.. wann gibt PHP das Objekt wieder frei ?
Habe ich ein Speicherleck, wenn ich die Seite ein 2. mal aufrufe, und $Test nicht vorher zerstöre ?

ja, unset reicht. Oder $var =null macht das selber.
Generell gibt php alle deine Variablen frei, sobald das Scriopt fertig durchgelaufen ist. Und da so ein Script ja meistens sowieso nur 0.1 Sekunde laeuft hast du, wenn &uuml;berhaupt, nur ein sehr kurzes Speicherleck.
Tats&auml;chlich gibt es einen bug in php, der zum Speicherleck fuehren kann, was aber nur signifikant ist, wenn dein Script in einer Schleife Klassen erstellt, weil, sobald dein Script durchgelaufen ist ja eh alles wieder freigegeben wird.

Hier infos zum bug: http://bugs.php.net/bug.php?id=33595

jensw_2000 9. Mär 2006 23:14

Re: [PHP] Objekte instanzieren und ... freigeben ?
 
Danke.
Das bringt mich weiter ...

Schöne Grüße,
Jens :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz