Since PHP 5.5.X foreach can accept non scalar items. So the return can be anything ;)
PHP - Manual: Iterator::key
2024-12-21
(PHP 5, PHP 7, PHP 8)
Iterator::key — 返回当前元素的键
此函数没有参数。
成功返回标量,失败则返回 null
。
失败时分发 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;
}