Since PHP 5.5.X foreach can accept non scalar items. So the return can be anything ;)
(PHP 5, PHP 7, PHP 8)
Iterator::key — Gibt den Schlüssel des aktuellen Elements zurück
Gibt den Schlüssel des aktuellen Elements zurück.
Diese Funktion besitzt keine Parameter.
Gibt bei Erfolg einen Skalar zurück, im Fehlerfall wird null
zurückgegeben.
Wirft im Fehlerfall eine Meldung vom Typ E_NOTICE
.
Since PHP 5.5.X foreach can accept non scalar items. So the return can be anything ;)
And converts everything to integer except string, so in php the post process could be:
public function key() {
$yourKey = $this->createYourKey();
if (is_object($yourKey) || is_array($yourKey))
throw new Exception('Array and Object not allowed.');
elseif (is_string($yourKey))
return $yourKey;
else
return (int) $yourKey;
}