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 — O anki elemanın anahtarını döndürür
Bu işlevin bağımsız değişkeni yoktur.
Başarı durumunda scalar türünde bir değer, aksi takdirde
null
döner.
Başarısızlık durumunda bir E_NOTICE
çıktılanır.
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; }
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:<?phpfunction foo() { yield null => 1; yield new stdclass => 2;}?>