Trong tài liệu PHP nó nói rằng:Máy phát điện PHP có thể được nhân bản không?
Sự linh hoạt này không đi kèm với chi phí, tuy nhiên: máy phát điện là phía trước chỉ lặp, và không thể được rewound lần lặp đã bắt đầu. Điều này cũng có nghĩa là cùng một máy phát không thể lặp lại nhiều lần: máy phát sẽ cần phải được xây dựng lại bằng cách gọi lại chức năng máy phát, hoặc nhân bản qua từ khóa clone. Documentation
Tuy nhiên tôi cố gắng viết một mã mà bắt chước các đối tượng phát mà tôi nhận được từ một phương pháp và tôi đã nhận một lỗi xác định rằng một đối tượng phát không thể được nhân bản:
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;
?>
Vui lòng đặt câu hỏi của bạn rõ ràng hơn. –