Heim > Artikel > Backend-Entwicklung > So verwenden Sie den PHP-Generator
Dieses Mal zeige ich Ihnen, wie Sie den PHP-Generator verwenden und welche Vorsichtsmaßnahmen bei der Verwendung des PHP-Generators gelten. Hier ist ein praktischer Fall, werfen wir einen Blick darauf.
1. Generatoren bieten eine einfachere Möglichkeit, eine einfache Objektiteration zu implementieren, da der Leistungsaufwand und die Komplexität viel größer sind. Mit Generatoren können Sie Code in einen foreach-Block schreiben, um einen Datensatz zu durchlaufen, ohne ein Array im Speicher zu erstellen. 2. Der Generator ist wie eine gewöhnliche
benutzerdefinierte Funktion. Anders als die gewöhnliche Funktion, die nur einmal zurückgibt, kann der Generator so oft wie nötig nachgeben, um die erforderliche Iteration zu generieren Wert sein. 3. Codebeispiele:
4. Praktische Anwendungsbeispiele//未使用生成器 echo '开始内存:'.getMemory().'<br>'; $nums = range(0,1000000); echo '结束内存:'.getMemory().'<br>'; //输出结果 //开始内存:0.23M //结束内存:130.31 //使用生成器 echo '开始内存:'.getMemory().'<br>'; $nums = xrange(1000000); function xrange($total) { for ($i = 0; $i < $total; $i++) { yield $i; } } echo '结束内存:'.getMemory().'<br>'; //输出结果 //开始内存:0.23M //结束内存:0.23MIch glaube, Sie haben die Methode beherrscht, nachdem Sie den Fall in diesem Artikel gelesen haben Achten Sie auf weitere spannende Artikel auf der chinesischen PHP-Website!
/** * 大量数据生成示例 * @param int $page * @param int $limit * @return Generator */ public function generator($page = 1,$limit = 50000) { while (true) { echo "第{$page}次".'generator开始内存:'.$this->getMemory().'<br>'; $start = ($page-1) * $limit; $sql = "SELECT p.id,p.wh_code,p.goods_sn FROM p_product as p WHERE p.wh_code LIKE '%YB%' OR p.wh_code LIKE '%DZWH%' LIMIT {$start},{$limit} "; $resultAll = db()->fetchAll($sql); yield $resultAll; //生成器 if (count($resultAll) != $limit) { break; } echo "第{$page}次".'generator结束内存:'.$this->getMemory().'<br>'; $page++; } } //测试生成器内存消耗 // foreach ($this->generator() as $result) { // var_dump($result[0]); // }
Empfohlene Lektüre:
PHP implementiert direkt die Generierung von PlakatwerbungDetaillierte Erläuterung der phpqrcode-Klasse zum Generieren von QR-CodeSo erhalten Sie HTTP-Parameter in Egg.jsDas obige ist der detaillierte Inhalt vonSo verwenden Sie den PHP-Generator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!