Hallo,
» doch sicher. Das ist ganz genauso dokumentiert. Ein Leerstring ist ein String. Ein Leerstring als Array-Key ist zulässig, siehe Handbuch, Arrays (unterhalb der Warnung).
»
hmmm, das hatte ich bisher immer so verstanden, dass man bei der Dekalration wie üblich so vorgehen kann:
$ar[] = 'a';
$ar[] = 'b';
Dann wird ja automatisch ein numerisches Array daraus.
ja und es ist etwas anderes als das Verwenden des Leerstrings als Key. Ich zitiere das, was ich Dir verlinkt habe und auf was ich Dich extra hingewiesen habe:
<zitat>
Using the empty string as a key will create (or overwrite) a key with the
empty string and its value; it is not the same as using empty brackets.
</zitat>
Aber das tatsächlich der Key leer, im Sinne von nicht sichtbar, sein darf, hätte ich nicht gedacht und irritiert mich auch ein wenig.
Die folgenden Anweisungen führen dazu, dass jeweils das gleiche Arrayelement verändert (bzw. gesetzt) wird:
~~~php
$ar[''] = 'a';
$ar[''] = 'b';
$ar[NULL] = 'c';
ganz genauso wie es in der verlinkten Doku steht. Wenn der Key der Leerstring ist, weist der Key einen definierten Wert vom Typ String auf. Wenn Du "leer" im Sinne von empty() interpretierst, dann gibt es Werte, für die empty() TRUE liefert, die aber als Key zugelassen sind. Dazu zählt auch der Integer-Wert 0.
Daher müsstest Du definieren, was Du unter "leer" verstehst. Genau aus diesem Grund habe ich Dich in [meinem ersten Beitrag](https://forum.selfhtml.org/?t=186020&m=1235147) zu Beginn darauf hingewiesen.
Freundliche Grüße
Vinzenz