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 ;)
This function may return any type, not just scalar, for some Iterator types. In particular, it is very trivial to write a generator function that yields arbitrary keys:
<?php
function foo() {
yield null => 1;
yield new stdclass => 2;
}
?>
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;
}