Iterator::key

(PHP 5, PHP 7, PHP 8)

Iterator::key返回当前元素的键

说明

abstract public Iterator::key ( ) : scalar

返回当前元素的键。

参数

此函数没有参数。

返回值

成功返回标量,失败则返回 null

错误/异常

失败时分发 E_NOTICE 级错误。

User Contributed Notes

sofe2038 at gmail dot com 26-Aug-2020 04:26
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;
}
?>
michaelgranados at gmail dot com 26-Jun-2013 03:46
Since PHP 5.5.X foreach can accept non scalar items. So the return can be anything ;)
Lszl Lajos Jnszky 14-Mar-2012 12:34
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;
    }