Moin!
<zitat>unset() gibt eine Variable oder ein Array-Element vollständig frei.</zitat>
In der Digitaltechnik werden die Signale aus zwei diskreten, ausgezeichneten Zuständen aufgebaut, also z.B. Schalterstellung: Ein oder Aus.
Eine binäre Variable kann zwei Werte annehmen:0 oder 1.
Wenn ich 1 mit 0 überschreie ist die Variable Leer.
Nein, stimmt nicht.
Nehmen wir mal an, eine variable Speicherstelle besteht aus 8 Bit. Dann haben diese 8 Bit immer irgendeinen Zustand, bilden also immer irgendeine Zahl zwischen 0 und 255. Es gibt aber keinen Zustand, der besagt "keine Zahl". Dazu bräuchte man entweder eine Definition "0 bedeutet leer" oder "255 bedeutet leer", oder ein zusätzliches Bit, das angibt, ob die Speicherstelle nun einen gültigen Zahlenwert hat, oder nicht.
PHP ist von Digitaltechnik außerdem ziemlich weit entfernt. Variablen werden beim ersten Anlegen in eine Liste eingetragen und mit einem Wert verknüpft. Deshalb kann man sowohl den zugewiesenen Wert löschen, indem man irgendeinen Leerwert einträgt, und man kann auch die Variable wieder aus der Liste löschen. Das ist aber NICHT dasselbe, denn der Leerwert ist ein gültiger Wert, der in der Variable auch aus anderen Gründen stehen kann. Damit man "Variable existiert nicht" von "Variable hat Leerwert" unterscheiden kann, gibt es eben die Funktionen "isset()" und "unset()".
- Sven Rautenberg