Hi!
Da ein leeres Array keine Schlüssel hat, kann die logische Konsequenz nur sein:
In PHP 5.2.10 ist der Rückgabewer NULL.
0 oder Leerstring wären gültige Keys und somit wäre das Ergebnis nicht mehr eindeutig. null hingegen ist kein gültiger Key.
Es gibt aber noch mehr mögliche Rückgabewerte die kein gültiger Key wären. Der Rückgabewert würde sich, so er nicht definiert ist, einfach aus den Gegebenheiten ergeben.
Welche Gegebenheiten meinst du? Du übergibt entweder ein Array und bekommst einen oder mehrere Schlüssel oder du übergibst keins oder ein leeres und erhältst null. null steht für nicht vorhanden. Alles andere wäre nicht besonders sinvoll.
Er könnte sich aber ändern, wenn an der Funktion, ohne, daß sich etwas von dem was definiert ist ändert, etwas geändert wird.
Deshalb frage ich, der Rückgabewert könnte ja für oben genannten Fall doch definiert sein, ohne daß es im Manuel steht und jemand könnte das wissen.
Der Quelltext von PHP ist öffentlich verfügbar. Derzeit gibt es null, wie du gesehen hast, und wenn sich was ändert steht es im Changelog.
Obendrein ist ein
if (!is_array($array))
return von_dir_definierter_wert;
schnell getippt, wenn dir das weniger Bauchschmerzen bereitet. :-)
Lo!