2011-01-17 3 views
1

Nur aus Neugier, tippte ich delete auf einen Editor mit PHP-Syntax-Hervorhebung und es setzte es mit einer bekannten Keyword-Farbe.
Es gibt unset(), die bei der Verwendung auf eine Referenz nehme ich an, löst Garbage Collection, Ressourcenbefreiung oder was auch immer PHP unter der Haube tut, aber was macht delete?
Beim Versuch delete $ref auf eine Referenzvariable, erhalte ich diesen Fehler: Parse error: syntax error, unexpected T_VARIABLE in /... on line ...Führt das Schlüsselwort `delete` in PHP aus, was es in C++ oder ähnlichem tut?

Antwort

9

Ihr Editor ist verwirrt. Es gibt kein delete Schlüsselwort in PHP.

Wenn Sie in der manual aussehen, witziger alle sagt, es ist, dass es ein „Dummy Handbuch Eintrag“ für Leute, die wirklich für unlink() oder unset suchen. Für den Fall, dass Sie eine Referenzvariable loswerden, tut unset das gleiche, außer dass es nicht den Wert zerstört, nur diese spezielle Referenz.

Zusätzlich, obwohl es in der Funktion Prototyp void delete (void) sagt, existiert keine solche Funktion tatsächlich.

+0

Auf einer Seite zur Kenntnis, wissen Sie, die menschliche Vernunft gesetzt, wenn abzusinken sogar ein Die Programmieredakteure der Programmiersprache steuern andere Programmierer ... – BoltClock

+0

Oh, du hast Recht, kein Objekt zu zerstören, nur auf unscharfe Referenzen. – Petruza

+0

@Petruza: Sie erhalten GCed, sobald Sie alle ihre Referenzen entfernt haben, oder wenn das Skript heruntergefahren wird. – BoltClock

1

Nach Bedeutung von ‚löschen‘ in C, sprechen Sie von ‚entschärft()‘ Funktion in PHP ...

unset($var); 
// or 
unset($var1, $var2,...);