久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

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

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

瀏覽:124日期: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
相關文章:
主站蜘蛛池模板: 中文字幕99| 国产三级黄色毛片 | 性视频一区二区 | 久热精品视频 | 久久欧美精品 | 国产精品免费观看 | 影音先锋在线看片资源 | 精品视频一区二区在线观看 | 国变精品美女久久久久av爽 | 一区二区三区在线 | 欧 | 欧美日韩精品一区 | 一区免费视频 | 日日夜夜天天 | 真人女人一级毛片免费播放 | 久久久久久久国产精品 | 九九亚洲精品 | 国产中文字幕一区 | 91中文在线观看 | 91原创视频在线观看 | 欧美日韩在线电影 | 精品免费av | 欧美一区二区三区在线 | 久久久精品综合 | 精品国产乱码一区二区三区 | 欧美aaa视频 | 精品国产91亚洲一区二区三区www | porn在线视频 | 亚洲精品一区二三区不卡 | 成人精品久久久 | 天天澡天天狠天天天做 | 亚洲国产精品一区二区久久 | 91久久精品日日躁夜夜躁欧美 | 日韩精品视频在线观看免费 | 黄色网址大全在线观看 | 午夜精品久久久久99蜜 | 日韩成人精品在线 | 在线观看a视频 | 四虎av在线| 一区二区三区免费在线 | 精品一区视频 | 97精品久久|