Unset alle Variablen, die im PHP-Skript
Versuchen, unset automatisch alle Variablen im Skript.
Versucht haben, auf diese Weise:
echo '<br /> Variables in Script before unset(): <br />';
print_r(array_keys(get_defined_vars()));
echo '<br /><br />';
var_dump(get_defined_vars());
//Creates string of comma-separated variables(*) for unset.
$all_vars = implode(', $', array_keys(get_defined_vars()));
echo '<br /><br />';
echo '<br />List Variables in Script: <br />';
echo $all_vars;
unset($all_vars);
echo '<br /><br />';
echo '<br />Variables in Script after unset(): <br />';
print_r(array_keys(get_defined_vars()));
echo '<br />';
var_dump(get_defined_vars());
Warum es nicht funktioniert?
Gibt es einen besseren Weg, dies zu tun?
Danke für die Hilfe!
(*) It's seems somewhat that it does not really create the variables, but a string that looks like variables...
Warum müssen Sie es überhaupt zu tun?
ich glaube das hast du falsch verstanden, die Verwendung der implode-Funktion..
Es gibt nicht viel Grund zu unset alle Variablen. Speicher-management von php ist wie C oder C++, wo allozierte Speicher muss wieder freigegeben werden. PHP wird kostenlos alle verwendeten Speicher automatisch, nachdem das Skript ausgeführt wird.
Nur für diejenigen, die wissen: der Grund, warum ich Tue, es ist, weil unser system codiert ist ziemlich schlecht, und wir müssen die include () - Datei nach der Datei "report mailing" - routine, wo wir so tun, wir haben einen Bericht ausführen, indem Sie die $_POST Sie erwarten. Da es eine include-Variablen sind gefüllt in den globalen Bereich, und wir sollten, reinigen Sie Sie vor dem laden eines anderen (nicht verwandten) zu melden. Ich bin interessiert in anderen Fällen verwenden die für diesen Kodex.
ich glaube das hast du falsch verstanden, die Verwendung der implode-Funktion..
Es gibt nicht viel Grund zu unset alle Variablen. Speicher-management von php ist wie C oder C++, wo allozierte Speicher muss wieder freigegeben werden. PHP wird kostenlos alle verwendeten Speicher automatisch, nachdem das Skript ausgeführt wird.
Nur für diejenigen, die wissen: der Grund, warum ich Tue, es ist, weil unser system codiert ist ziemlich schlecht, und wir müssen die include () - Datei nach der Datei "report mailing" - routine, wo wir so tun, wir haben einen Bericht ausführen, indem Sie die $_POST Sie erwarten. Da es eine include-Variablen sind gefüllt in den globalen Bereich, und wir sollten, reinigen Sie Sie vor dem laden eines anderen (nicht verwandten) zu melden. Ich bin interessiert in anderen Fällen verwenden die für diesen Kodex.
InformationsquelleAutor Ash501 | 2014-10-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ya go ->
Und zu klären, implode " zurück "eine string-Repräsentation aller array-Elemente in der gleichen Reihenfolge".
http://php.net/manual/en/function.implode.php
Unset erfordert die tatsächliche variable als parameter, nicht nur eine string-Darstellung. Was ist ähnlich, was get_defined_vars() gibt (nicht die eigentliche variable Referenz). Damit der code durchläuft das array von strings ist, und gibt jeden als Referenz mit dem extra $ vor - das unset verwenden können.
Halten, war die Arbeit früher - geben Sie mir ein paar
Dies funktioniert nicht für mich. Ich glaube nicht, dass $vars zugewiesen bekommt-by-reference. Sie sind nicht nur entfernen der Kopie in der vars-variable verlassen, während das original unberührt?
Es ya gehen - es ist korrigiert. Sorry, ich dachte, ich hätte es zu arbeiten (etwas, das funktionierte nur nicht sicher, was) 🙂
Danke für die Erklärung!
InformationsquelleAutor airtech
foreach (array_keys($GLOBALS) as $k) unset($$k);
unset($k);
unset($GLOBALS[$k])
stattunset($k)
.InformationsquelleAutor ferhad
weiß nicht, wie es Euch geht, aber $$vars nicht für mich arbeiten.
das ist, wie ich es Tat.
InformationsquelleAutor Leo Leoncio