3
PHP 7.1では、配列を抽象化する新しい psudoタイプとTraversable
オブジェクトがあります。PHP - ジェネリックな繰り返し可能性を2回繰り返します。
は私のコードでは、私は次のようなクラスがあるとします。
class Foo
{
private $iterable;
public function __construct(iterable $iterable)
{
$this->iterable = $iterable;
}
public function firstMethod()
{
foreach ($this->iterable as $item) {...}
}
public function secondMethod()
{
foreach ($this->iterable as $item) {...}
}
}
これは正常に動作$iterable
ある$iterable
がGenerator
ある場合を除き、配列またはIterator
です。その場合、実際にはfirstMethod()
を呼び出してからsecondMethod()
を呼び出すと、Exception: Cannot traverse an already closed generator
が生成されます。
この問題を回避する方法はありますか?