Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Ertrag

PHP-Ertrag

WBOY
WBOYOriginal
2024-08-29 12:56:31306Durchsuche

Das PHP-Schlüsselwort yield wird zum Erstellen einer Generatorfunktion verwendet. Es ist ein integriertes Schlüsselwort in PHP. Eine Generatorfunktion ist mit der normalen Funktion identisch, außer dass sie einen einzelnen Wert zurückgibt. Das Schlüsselwort „generator yield“ gibt viele Werte zurück, die für die Rückgabe von der Generatorfunktion erforderlich sind. Jede Funktion, die yield enthält, ist eine Generatorfunktion. Der Generator funktioniert genauso wie der Iterator, der mit einer foreach-Schleife durchläuft, und jedes Mal, wenn er einen Wert benötigt, liefert der Generator einen Wert; Das Schlüsselwort yield ist dasselbe wie das Schlüsselwort return, außer dass die Ausführung nicht gestoppt wird.

WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Syntax

yield $value;

Parameter –

Wert – Dies ist nicht optional, sondern gibt den Wert an, der zurückgegeben werden soll.

Rückgabewert – Der Rückgabewert dieser Methode sind die Werte, die in der Generierungsfunktion zurückgegeben werden müssen.

Funktionsweise des PHP-Yield-Schlüsselworts

Das PHP-Schlüsselwort yield wird in der Generatorfunktion verwendet, um mehrere Werte zurückzugeben oder zu liefern. Wenn die Generatorfunktion aufgerufen wird, gibt sie ein Iteratorobjekt zurück, das iteriert werden kann. Wenn wir dieses Objekt durch eine foreach-Schleife iterieren, die die Iterationsmethoden des Objekts jedes Mal von PHP aufruft, wenn es einen Wert benötigt, wird der Status der Generatorfunktion gespeichert, wenn die Generatorfunktion einen Wert liefert, der fortgesetzt wird, um den nächsten Wert zu erhalten. Wenn keine Werte mehr vorhanden sind, wird der Generator einfach beendet und der aufrufende Code kann fortfahren, sobald dem Array die Werte ausgehen.

Beispiele für das PHP-Yield-Schlüsselwort

Verschiedene Beispiele sind unten aufgeführt:

Beispiel #1 – mehrere Werte ergeben

Als nächstes schreiben wir den PHP-Code, um das PHP-Schlüsselwort yield anhand des folgenden Beispiels besser zu verstehen, in dem das Schlüsselwort yield verwendet wird, um mehrere Werte aus der Generatorfunktion zu ermitteln, wie unten dargestellt –

Code:

<?php
// creating function to generate even numbers in between 2 to 10
function gen_even_numbers() {
for ($i = 2; $i <= 10; $i+=2) {
// Note that $i is preserved between yields.
yield $i;
}
}
// calling the gen_even_numbers function
$generator = gen_even_numbers();
// iterating over the yeilded values of the gen_even_numbers function
print( " The yeilded values of the generator function are : \n ");
foreach ($generator as $value) {
print( " $value\n ");
}
?>

Ausgabe:

PHP-Ertrag

Wie im obigen Programm wird die Funktion gen_even_numbers() erstellt, um die geraden Zahlen zwischen 2 und 10 zu finden und bei iterativem Aufruf eine Ausbeute oder Rückgabe zu liefern. In jeder Iteration werden die Werte einzeln zurückgegeben und auch angezeigt, wie wir in der Ausgabe sehen können.

Beispiel #2 – iterator_to_array()-Methode

Als nächstes schreiben wir den PHP-Code, um das PHP-Schlüsselwort yield zu verstehen, wobei das Schlüsselwort yield zum Ermitteln mehrerer Werte aus der Generatorfunktion verwendet wird und diese Generatorfunktion eine andere Generatorfunktion aufruft, wie unten –

Code:

<?php
// creating function to generate even numbers in between 2 to 10
function gen_even_numbers() {
for ($i = 2; $i <= 10; $i+=2) {
// Note that $i is preserved between yields.
yield $i;
}
}
// creating function to call gen_even_numbers function
function call_gen()
{
yield 2;
yield from gen_even_numbers();
yield 10;
}
// calling the call_gen function
$generator = call_gen();
// iterating over the yeilded values of the call_gen function
print( " The yeilded values of the generator function by foreach loops are : \n ");
foreach ($generator as $value) {
print( " $value\n ");
}
print("<br>");
print( "The yeilded values of the generator function by iterator_to_array are : \n ");
var_dump(iterator_to_array(call_gen()));
?>

Ausgabe:

PHP-Ertrag

Wie im obigen Programm wird die Funktion gen_even_numbers() erstellt, um die geraden Zahlen zwischen 2 und 10 zu finden und zurückzugeben, und dann wird eine weitere Funktion call_gen() verwendet, um die Funktion gen_even_numbers() unter Verwendung von yield from aufzurufen setzt die Schlüssel nicht zurück. Später im Code führt die Iteration zwei Möglichkeiten aus. Die erste Möglichkeit ist die Verwendung der foreach-Schleife, die die Werte der Reihe nach durchläuft, während sie in der Funktion call_gen() ausgegeben werden, sodass Schlüssel nicht zurückgesetzt werden und als 2 2 4 6 8 10 10 ausgegeben werden. Wohingegen die zweite Möglichkeit verwendet die Methode iterator_to_array(), die standardmäßig ein verschlüsseltes Array zurückgibt und möglicherweise zu unerwarteten Ergebnissen führen kann, die wir in der Ausgabe sehen können.

Beispiel #3 – innerhalb der Referenzgeneratorfunktion

Als nächstes schreiben wir den PHP-Code, um das PHP-Schlüsselwort yield zu verstehen, wobei das Schlüsselwort yield innerhalb der Referenzgeneratorfunktion verwendet wird, wie unten –

Code:

<?php
// creating function to generate even numbers in between 2 to 10
function &gen_even_numbers() {
$i = 2;
while($i <= 10) {
// yield does not come out from the loop or function
yield $i;
$i+=2;
}
}
// calling the gen_even_numbers function
$generator = gen_even_numbers();
// iterating over the yeilded values of the call_gen function
print( " The yeilded values of the reference generator function are : \n ");
foreach ($generator as &$value) {
print( " $value\n ");
}
?>

Ausgabe:

PHP-Ertrag

Im obigen Programm ist die Funktion gen_even_numbers() eine Referenzfunktion, da ihr das „&“ vorangestellt ist; Es wird verwendet, um die geraden Zahlen zwischen 2 und 10 zu finden und zurückzugeben. Weiter wird über das Rückgabeobjekt dieser Funktion iteriert und jedes Mal wird der iterierte Wert in einer Variablen gespeichert, der wiederum das Präfix „&“ vorangestellt wird.

Fazit

Das PHP-Schlüsselwort yield ist ein integriertes Schlüsselwort, das zum Erstellen einer Generatorfunktion oder zum Zurückgeben einer Funktion verwendet wird.

Das obige ist der detaillierte Inhalt vonPHP-Ertrag. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP ord()Nächster Artikel:PHP ord()