Variablen?!

IQ100

Mitglied
Hmm ... habe die Sufu benutzt aber leider bringt die irgendwie alles (heute *g*) mal bitte bei euch Testen!

Meine Suchanfrage: PHP Variablen löschen

Ja jetzt zu mein Problem oder besser zu meiner Frage:
Bastel gerade an meiner HP und die besteht mittlerweile aus ca. 90 % PHP *lach*
und in Programmiersprachen wie VB, C++, C# kann man ja Variablen leeren bzw. sogar Terminieren .... Wollte nun wissen ob man das auch in PHP kann bzw. muss?!

Stelle mir nämlich vor, wenn einer nen PHP-Webauftritt besucht werden die Vars bestimmt im Speicher zwischengespeichert und das wird ja dann auch irgendwann zuviel, oder? (hab ja auch noch Sound und ne menge Grafiken sowie bissl Flash in meiner HP)

Also ? ... Killen ? ... oder nicht ? :suspekt:
 
Mit der unset()-Funktion kannst du Variablen löschen. Du kannst sie aber auch einfach mit null überschreiben ($var = null), was einer Löschung (fast) gleich kommt.

Ach ja, da deine Frage etwas konfus formuliert ist: PHP wird auf dem Server ausgeführt. Nur die generierte Ausgabe wird an den Client geschickt. Das heißt, dass es für die Clientseite keinen Unterschied macht, wie viel Speicher ein Skript auf der Serverseite benötigt.
 
ok ... danke ... vielmals :-D da kann ich meinen gästen ja doch ein bisschen ärger abnehmen (auch wenn heutzutage ram eher keine sache mehr ist, bei den GB-Größen).

Thema Erledigt!
 
Der Client kann schon indirekt einen Unterschied spüren, dass etwa das Generieren und damit auch Laden der Seite flotter geht, weil der Server nicht nur Anfragen schneller sondern auch mehrere gleichzeitig verarbeiten kann.
 
Hier muss ich nochmals einhaken und zwar an der Stelle "muss ich Variablen" löschen?

Das Verwenden von unset() um Speicher freizugeben etc. macht nur in wenigen Ausnahmen Sinn. Grundsätzlich kümmert sich PHP um die Freigabe von nicht mehr benötigtem Speicher. Ganz grob formuliert ist dies der Fall wenn

a) das PHP Skript komplett abgearbeitet wurde oder
b) die Variable ihre Gültigkeit verliert.

Ein Beispiel zu b) Hast Du eine Schleife oder Funktion und erzeugst innerhalb dieser eine Variable, dann wird diese "vernichtet" sollte die Schleife oder Funktion verlassen werden. Man kann dies zwar unterbinden, aber grundsätzlich sollte PHP so funktionieren.

Probleme mit großem Speicherverbrauch kann es hauptsächlich in diesen Bereichen geben:

c) du verwendest die Image Funktionen von PHP und liest sehr große Bilder ein
d) Du verwendest rekursive Funktionen
e) Du verwendest mehrere Datenbank Verbindungen eventuell auch noch persistente.

Das sind die Bereiche die mir einfallen - alles andere kannst Du getrost PHP überlassen. Massenaftes unset'en von Variablen bläht nur den Code unnötig auf.

-------------

Das mit dem Speicher hast Du eventuell missverstanden: Der Speicher Deiner Besucher hat NICHTS! mit PHP zu tun. Ein Client (Browser) kackt Dir nur ab, wenn Du an ihn massenweise Daten schickst (hunderte Bilder), clientseitige Endlosscheifen (JavaScript) produzierst etc.

PHP arbeitet mit dem Speicher des Servers auf dem es installiert ist. Und dieser ist nicht immer billig ;) Freigabe von Variablen betrifft also nur den Server!
 
das ist mal interessant! ich dachte der speicher wird da genutzt wo auch das php-script geladen wird (client) - wieder was gelernt, naja letztendlich hat sich's damit auch schon erledigt, weil 1. ich jetzt die funktion kenne und 2. weil speicher bei mir nicht allzugroße rolle spielt (wenig bilder keine anderen serveranwendungen :-) )
 
Und wieder eine kleine Verbesserung :D

PHP wird NICHT zum Client/Browser übertragen (Gott bewahre!) sondern auf dem Server ausgeführt - auf dem Browser erscheinen nur Dinge die Du in PHP ausgibst, z.B. folgendes PHP Skript "test.php" liegt im Dokumentenverzeichnis Deines Webservers:

PHP:
<?php

// BlaBlubb

$name = "Hugo";

echo 10;

?>

Wenn Du nun nun via Browser dieses Skript "www.IQ100.de/test.php" anforderst, passiert folgendes (vereinfacht dargestellt):

1. Der Webserver erkennt dass das angeforderte Dokument ein PHP Skript ist (anhand .php) und gibt das Skript ohne was zu tun an den PHP Interpreter (diese Software führt tatsächlich das Skript aus) weiter.

2. Der PHP Interpreter verarbeitet das Skript und gibt bei obigem Beispiel NUR!! die 10 an den Webserver zurück.

3. Der Webserver nimmt die 10 und schickt diese an Deinen Browser :) Das einzigste was also Dein Browser in diesem Fall erhält ist eben diese 10 - sonst nix!


Dinge die auf dem Client/Browser ausgeführt werden: JavaScript, JavaApplets (sofern die VM installiert wurde), Flash (sofern der Player installiert wurde) ... aber kein PHP :)
 
Zuletzt bearbeitet:
Zurück