看来我无法通过引用迭代 SplFixedArray 中的值:
$spl = new SplFixedArray(10);
foreach ($spl as &$value)
{
$value = "string";
}
var_dump($spl);
Outputs:
Fatal error: Uncaught exception 'RuntimeException' with message 'An iterator cannot be used with foreach by reference'
有什么解决办法吗?
有什么解决办法吗?
简短的回答:不要按引用迭代。这是几乎所有 PHP 迭代器都会抛出的异常(有very此例外很少有例外);这没什么特别的SplFixedArray
.
如果您想重新分配值foreach
循环中,您可以像使用普通数组一样使用键。我不会称其为解决方法不过,因为这是正确且预期的方法。
原作:不好
$spl = new SplFixedArray(10);
foreach ($spl as &$value)
{
$value = "string";
}
var_dump($spl);
按键分配:好
$spl = new SplFixedArray(10);
foreach ($spl as $key => $value)
{
$spl[$key] = "string";
}
var_dump($spl);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)