自 PHP 5.5.X 以来,foreach 可以接受非标量项。因此,返回值可以是任何东西;)
(PHP 5, PHP 7, PHP 8)
Iterator::key — 返回当前元素的键
此函数没有参数。
成功时返回 标量,失败时返回 null
。
失败时发出 E_NOTICE
。
对于某些 Iterator 类型,此函数可能返回任何类型,而不仅仅是标量。特别是,编写一个生成器函数来产生任意键非常容易
<?php
function foo() {
yield null => 1;
yield new stdclass => 2;
}
?>
并将除字符串之外的所有内容都转换为整数,因此在 php 中,后处理可以是
public function key() {
$yourKey = $this->createYourKey();
if (is_object($yourKey) || is_array($yourKey))
throw new Exception('数组和对象不允许。');
elseif (is_string($yourKey))
return $yourKey;
else
return (int) $yourKey;
}