Signatur
Beschreibung
delete existiert in PHP nicht als eigenständige Funktion oder Sprachkonstrukt. Der Name taucht in der PHP-Dokumentation lediglich als Alias-Hinweis auf, der auf die beiden tatsächlich existierenden Mechanismen verweist: unlink() zum Löschen von Dateien und unset() zum Freigeben von Variablen.
Um eine Datei vom Dateisystem zu entfernen, verwendet man unlink(string $filename). Die Funktion gibt true zurück, wenn die Datei erfolgreich gelöscht wurde, und false bei einem Fehler (z. B. fehlende Schreibrechte oder nicht vorhandene Datei).
Um eine Variable, einen Array-Eintrag oder eine Objekteigenschaft aus dem aktuellen Gültigkeitsbereich zu entfernen, verwendet man das Sprachkonstrukt unset(mixed $var, mixed ...$vars): void. Nach dem Aufruf ist die Variable nicht mehr gesetzt, ein anschließendes isset() liefert false.
Entwickler, die aus anderen Sprachen wie C++ oder JavaScript kommen, suchen oft nach delete – in PHP sollte je nach Anwendungsfall konsequent unlink() oder unset() genutzt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $var Pflicht | mixed | Nicht zutreffend – delete existiert nicht als PHP-Funktion. Siehe unlink() für Dateipfade und unset() für Variablen. |
Rückgabewert
delete ist kein gültiges PHP-Konstrukt. unlink() gibt bool zurück, unset() gibt void zurück.Beispiele
Datei löschen mit unlink()
<?php
$datei = '/tmp/beispiel.txt';
// Datei erstellen
file_put_contents($datei, 'Testinhalt');
// Datei löschen
if (unlink($datei)) {
echo "Datei erfolgreich gelöscht.";
} else {
echo "Fehler beim Löschen der Datei.";
}
Variable und Array-Eintrag entfernen mit unset()
<?php
$name = 'PHP';
$daten = ['a' => 1, 'b' => 2, 'c' => 3];
// Variable löschen
unset($name);
var_dump(isset($name)); // false
// Array-Eintrag löschen
unset($daten['b']);
print_r($daten);
// Wichtig · Fallstricke
Sicherheitshinweis für unlink(): Niemals benutzerkontrollierte Eingaben direkt als Dateipfad verwenden, da dies zu einem Path-Traversal-Angriff führen kann (z. B. ../../etc/passwd). Pfade immer mit basename() oder realpath() validieren und auf erlaubte Verzeichnisse prüfen.
Hinweis zu unset(): Das Aufrufen von unset() auf eine Variable innerhalb einer Funktion beeinflusst nicht die gleichnamige Variable im globalen Gültigkeitsbereich. Um eine globale Variable zu entfernen, muss unset($GLOBALS['varname']) verwendet werden.
delete als direkter Funktionsaufruf erzeugt in PHP einen Fatal Error (Call to undefined function delete()).