phpbar.de logo

Mailinglisten-Archive

[php] Aufräumen vor Funktionsende

[php] Aufräumen vor Funktionsende

Sebastian Mendel lists at sebastianmendel.de
Fre Mar 31 08:07:54 CEST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andreas Brandl schrieb:
> Sebastian Mendel schrieb:
>> Andreas Brandl schrieb:
>>> Hallo Liste,
>>>
>>> es stellt sich mir gerade die Frage, ob es Sinn macht vor Funktionsende
>>> sämtliche in der Funktion definierte Variablen manuell per unset() aus
>>> dem Speicher zu entfernen.
>>>
>>> [...]
>>>
>>> Macht es Sinn, diese händisch aus dem Speicher zu entfernen oder
>>> passiert das bei Funktionsende automatisch?
>> Es sollte eigentlich automatisch passieren, aber ich würde es auch gern 
>> genau wissen, von jemandem der sich mit PHP intern auskennt ... Johannes?
> 
> Ist Johannes im Urlaub? :-)
> 
>> P.s. natürlich nur freigegeben für PHP nicht für das System. Das
>> geschieht ja erst am Ende des Skripts egal ob unset() oder nicht. 
> 
> Ja gut, das ist ja schonmal ein Hinweis... wenns nur für PHP freigegeben 
> wird, dann beeinträchtigt das doch sicher nicht die Performance des 
> Scripts, oder?

Was jetzt genau?

Freigeben von Variablen am Funktionsende? Doch, ist ja ein unnötiger
Funktionsaufruf.

Nicht Freigeben von Variablen allgemein? Doch denn wenn du sie nicht
wieder freigibst muss PHP ja ständig neuen Speicher vom System anfordern.


> Müsste dann nur für memory_limit relevant sein, oder lieg ich hier falsch?

Also ich bin mir sicher irgendwo schonmal gelesen zu haben das Variablen
innerhalb einer Funktion bei Funktionsende 'zerstört' und der Speicher
(für PHP) wieder freigegeben wird, ein unset() wäre hier also unnötig.

Und genau davon geh ich auch aus, bei meinen Funktionen/Methoden, ich
geb nur in main() Variablen wieder frei mit unset().


Alles IMHO! - aber eine andere Vorgehensweise von PHP würde ich als Bug
bezeichnen.


- --
Sebastian Mendel

www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (MingW32)

iD8DBQFELMc6X/0lClpZDr4RAlmJAKC1S2ApxW/La9bxik3ADI84aAIBwgCfTIBM
d2jagiNRF+Ia3AUKEnKtnkQ=
=1cnp
-----END PGP SIGNATURE-----

php::bar PHP Wiki   -   Listenarchive