国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

PHP基礎之生成器4——比較生成器和迭代器對象

瀏覽:103日期:2022-09-15 09:50:00

生成器最大的優勢就是簡單,和實現Iterator的類相比有著更少的樣板代碼,并且代碼的可讀性也更強. 例如, 下面的函數和類是等價的:

<?php function getLinesFromFile($fileName) {if (!$fileHandle = fopen($fileName, ’r’)) { return;}while (false !== $line = fgets($fileHandle)) { yield $line;}fclose($fileHandle); } // versus... class LineIterator implements Iterator {protected $fileHandle;protected $line;protected $i;public function __construct($fileName) { if (!$this->fileHandle = fopen($fileName, ’r’)) {throw new RuntimeException(’Couldn’t open file '’ . $fileName . ’'’); }}public function rewind() { fseek($this->fileHandle, 0); $this->line = fgets($this->fileHandle); $this->i = 0;}public function valid() { return false !== $this->line;}public function current() { return $this->line;}public function key() { return $this->i;}public function next() { if (false !== $this->line) {$this->line = fgets($this->fileHandle);$this->i++; }}public function __destruct() { fclose($this->fileHandle);} }?>

這種靈活性也付出了代價:生成器是前向迭代器,不能在迭代啟動之后往回倒. 這意味著同一個迭代器不能反復多次迭代: 生成器需要需要重新構建調用,或者通過clone關鍵字克隆.

標簽: PHP
相關文章:
主站蜘蛛池模板: 91久久精品国产一区二区 | 亚洲欧美精品 | 中文字幕乱码中文乱码综合 | 国产日韩在线视频 | 日韩欧美一区二区三区久久 | 国产精品无码久久久久 | 九九久久精品国产 | 一本久久a久久精品亚洲 | 亚洲一区二区三区不卡在线播放 | 免费观看三级毛片 | 在线成人天天鲁夜啪视频 | 久草在线国产视频 | 亚洲精品不卡午夜精品 | 日本大黄网站 | 久久精选视频 | 国产精品6| 国产精品亚洲成在人线 | 午夜国产 | 国产性大片黄在线观看在线放 | 国产高清美女一级a毛片久久w | 国产免费久久精品99久久 | 国产成人精品男人免费 | 国产粉嫩高中生无套第一次 | 欧美老头老太做爰xxxx | 日韩不卡毛片 | 一级a爰片久久毛片 | 国产91丝袜美腿在线观看 | 久久国内精品自在自线观看 | 亚洲成在线观看 | 久久一区二区三区不卡 | 99re9精品视频在线 | 亚洲欧美日本韩国综合在线观看 | 精品91一区二区三区 | 性做久久久久免费观看 | 久艹在线| 国产一区二区三区免费观看 | 一级片网站在线观看 | 黄大片日本一级在线a | 久久网在线 | 国语一级毛片 | 黄色片日本人 |