


PHP-Generator Yield verarbeitet große Datenmengen im Geschäft (Codebeispiel)
Offizielle Erklärungyield
yield生成器
erschien nach php5.5
, das offizielle Dokument erklärt dies: yield
bietet eine einfachere Möglichkeit, einfache Iterationsobjekte zu implementieren. Im Vergleich zur Definition einer Klasse zur Implementierung der Iterator
-Schnittstelle werden der Leistungsaufwand und die Komplexität erheblich reduziert.
Der Kern eines Generators ist ein yield
-Schlüsselwort. Eine Generatorfunktion sieht aus wie eine gewöhnliche Funktion. Der Unterschied besteht darin, dass eine gewöhnliche Funktion einen Wert zurückgibt, während ein Generator viele Werte generieren kann erfordert. Wenn die Generatorfunktion aufgerufen wird, gibt sie ein Objekt zurück, über das iteriert werden kann. yield
ähnelt yield
, der Unterschied besteht jedoch darin, dass return
einen Wert zurückgibt und die Ausführung des Codes beendet, während return
einen Wert an den Code zurückgibt, der eine Schleife durchführt ruft diesen Generator auf und pausiert einfach die Ausführung der Generatorfunktion. yield
Übrigens möchte ich Ihnen die PHP-Version der nicht gepufferten Abfrage
vorstellen, was das Lesen der Datenzeile bedeutet Zeile in den PHP-Laufspeicher Es ist kein einmaliges Einlesen in den PHP-Laufspeicher. Wie wir alle wissen, verfügt PHP über viele integrierte Funktionen, die uns bei der Verarbeitung von Daten helfen können betrieben werden, aber der PHP-Laufspeicher ist begrenzt und der Standardwert ist 128 MB. Hinweis: Da die Verbindung nicht gepufferter Abfragen mit der Datenbank lange dauert, kann es zu langsamen Abfragen, Tabellensperren usw. kommen, die mehr MySQL-Ressourcen verbrauchenrelativ ungepuffert Die Abfrage ist eine gepufferte Abfrage:
Wenn Sie eine zwischengespeicherte Abfrage verwenden, explodiert der PHP-Speicher direkt und es ist nicht genügend Speicher vorhanden. Okay, der Hauptzweck besteht hier darin, den Ertrag hervorzuhebenErtragsleistung
Der Generator wird einen sehr großen Einfluss auf die Leistung von PHP haben AnwendungenPHP-Code spart beim Ausführen viel SpeicherEs eignet sich besser zum Berechnen großer DatenmengenErtragsbetriebVerwenden
Mit Generatoren können Sie Code in einen foreach-Block schreiben, um einen Datensatz zu durchlaufen, ohne ein Array im Speicher zu erstellen, was Ihre Speichergrenze erreichen oder erhebliche Verarbeitungszeit in Anspruch nehmen würde. Stattdessen können Sie eine Generatorfunktion schreiben, genau wie eine normale benutzerdefinierte Funktion, und statt einer normalen Funktion, die nur einmal zurückgibt, kann der Generator so oft wie nötig nachgeben, um die Werte zu generieren, über die iteriert werden muss. Erklärung mit Beispielen//仓库库存扣除测试 public function cangku_stock() { //set_time_limit(0); //表示永久运行,这里我是测试array的时候用到的 $order_info = $this->read_temp_api_order_info(10); //这里我就测试了10条数据,效果是看不出来的 foreach($order_info as $temp_api_order_info){ dd($temp_api_order_info); //打印出来看看数据 //处理数据 $api_ware_id = $this->o->getCangkuApiUrl() .'ware/program/addOutWare'; $out_wares = api_request($api_ware_id, $temp_api_order_info); $temp_out_wares = json_decode($out_wares, true); if ($temp_out_wares['code'] != 1) { $msg = (isset($temp_out_wares['msg']) && $temp_out_wares['msg']) ? $temp_out_wares['msg'] : var_export($out_wares, true); throw new Exception($msg); } } //dd("批量更新成功".date('Y-m-d H:i:s'));
Okay, wenn Sie die Anzahl berechnen Datentabellen, dann müssen Sie diese Methode ändern. Versuchen Sie es selbst zu ändern. $this->read_temp_api_order_info(10);就
PHP-Tutorial!
Das obige ist der detaillierte Inhalt vonPHP-Generator Yield verarbeitet große Datenmengen im Geschäft (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
