Iterable β ΡΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ ΡΠΈΠΏΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π΄Π»Ρ array|Traversable.
Π‘ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π² PHP 7.1.0 ΠΈ Π΄ΠΎ PHP 8.2.0 ΡΠΈΠΏ iterable Π±ΡΠ» Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΠΏΡΠ΅Π²Π΄ΠΎΡΠΈΠΏΠΎΠΌ,
ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π» ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π½Π°Π·Π²Π°Π½Π½ΡΠΉ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ ΡΠΈΠΏΠ°, ΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°Π»ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ°.
Π’ΠΈΠΏ iterable ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ foreach ΠΈ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ yield from
Π²Π½ΡΡΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
Π€ΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ iterable ΠΊΠ°ΠΊ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π²ΡΠ΄Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
<?php
function gen(): iterable {
yield 1;
yield 2;
yield 3;
}
foreach (gen() as $value) {
echo $value, "\n";
}
?>