【发布时间】:2014-05-16 11:56:51
【问题描述】:
在 PHP 文档中它说:
但是,这种灵活性确实是有代价的:生成器是只向前的迭代器,一旦迭代开始就不能倒带。这也意味着同一个生成器不能被多次迭代:需要通过再次调用生成器函数来重建生成器,或通过 clone 关键字进行克隆。 Documentation
但是,我尝试编写一个代码来克隆从方法接收到的生成器对象,但我收到一个错误,指出无法克隆生成器对象:
class Course {
private $students = array("avi" , "haim" , "maor" , "liran" , "yossi");
function generateStudents() {
foreach ($this->students as $student) {
yield $student;
}
}
}
$ob = new Course();
$generator = $ob->generateStudents();
// Fatal error: Trying to clone an uncloneable object of class Generator
$generator2 = clone $generator;
?>
【问题讨论】:
-
请把你的问题说清楚。