ΠΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠΈΠΊΠ» foreach
ΠΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π² JavaScript
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
I. ΠΠ΅ΡΠ΅Π±ΠΎΡ Π½Π°ΡΡΠΎΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
1. ΠΠ΅ΡΠΎΠ΄ forEach ΠΈ ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ
ΠΡΠ»ΠΈ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°ΡΡΡΠΈΡΠ°Π½ Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ECMAScript 5 (ES5), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ β ΠΌΠ΅ΡΠΎΠ΄ forEach.
Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ forEach ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΌΡΠ»ΡΡΠΈΠΈ es5-shim Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ², Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΡ Π½Π°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. Π Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ IE 8 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΊΠΎΠ΅-Π³Π΄Π΅ Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ.
Π Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°ΠΌ forEach ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΡΠΎ, ΡΡΠΎ Π·Π΄Π΅ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° (ΠΊΠΎΠ»Π±Π΅ΠΊ) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΠ»ΠΈ Π²Π°Ρ Π±Π΅ΡΠΏΠΎΠΊΠΎΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ Π½Π° Π²ΡΠ·ΠΎΠ² ΠΊΠΎΠ»Π±Π΅ΠΊΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ ΠΈ ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠΎ.
2. Π¦ΠΈΠΊΠ» for
Π‘ΡΠ°ΡΡΠΉ Π΄ΠΎΠ±ΡΡΠΉ for ΡΡΠ»ΠΈΡ:
ΠΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Π° Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΈΠΊΠ»Π°, Π° ΡΠ°ΠΌ ΡΠΈΠΊΠ» ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠ°ΡΡΠΊΡ ΠΊΠΎΠ΄Π° (ΡΡΠΎ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½ΠΎ), ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Β«Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΡΒ» Π²Π΅ΡΡΠΈΡ for Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»ΠΈΠ½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°:
Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ.
ΠΡΠ»ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ Π²Π°ΠΆΠ΅Π½, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΡΠΈ Π΅ΡΠ΅ Π΄Π°Π»ΡΡΠ΅ Π² ΠΏΠ»Π°Π½Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ:
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π²ΠΈΠΆΠΊΠ°Ρ JavaScript ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈΠ³ΡΡ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΡΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°ΡΠ°Ρ.
3. ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Π° for. in
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², for. in ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅:
Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΎΡΠΌΠΈΡΡ Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
Π’ΠΎΠ³Π΄Π° ΡΠ΅Π»ΠΎ ΡΠΈΠΊΠ»Π° ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡΡ:
Π Π°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°Π΅Π². ΠΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΡΡ Π²Π΅ΡΡΠΈΡ, Ρ ΠΎΡΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΈ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ, Π½ΠΎ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ»ΡΡΠ°Π΅Π²:
4. Π¦ΠΈΠΊΠ» for. of (Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°)
ES6, ΠΏΠΎΠΊΠ° Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΡΠ΅Π±ΡΠ²Π°ΡΡΠΈΠΉ Π² ΡΡΠ°ΡΡΡΠ΅ ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊΠ°, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π²Π΅ΡΡΠΈ Π² JavaScript ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ for. of :
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΈΠΊΠ» for. of Π½Π΅ΡΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Array Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°.
5. Π―Π²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°
II. ΠΠ΅ΡΠ΅Π±ΠΎΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π½Π°ΡΡΠΎΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ, Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΡΠ΅, ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π½Π°ΡΡΠΎΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ for ΠΈ for. in ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ ΠΊ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΡΠΎΡΠ½ΠΎ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΡΠ΅ΠΌ, ΡΡΠΎ ΠΈ ΠΊ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ.
forEach ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Array.prototype ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΠΊ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ² Function.call ΠΈΠ»ΠΈ Function.apply.
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ Array.prototype.forEach Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ ΠΊΠ°ΠΊ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅:
ΠΡΠ»ΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, ΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠ²Π½ΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ Π½Π°ΡΡΠΎΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
2. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ NodeList Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ², Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:
BestProg
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΎΠΈΡΠΊ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠ°Ρ :
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΈΠΊΠ»Π° foreach ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° foreach ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ
2. ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠΈΠΊΠ»Π° foreach Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
2.1. ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΡΠΌΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΠΏΠ° double
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
2.2. ΠΠΎΠΈΡΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
ΠΡΠΈΠΌΠ΅Ρ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
3. ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΊΠ»Π° foreach Π΄Π»Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ
Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° Console Application ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
3.2. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ Hashtable
Π’Π΅ΠΊΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° Console Application ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
4. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° foreach Π΄Π»Ρ Π΄Π²ΡΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΈΠΊΠ»Π° foreach ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ². Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊ, ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠΈΠΌΠ΅Ρ. ΠΠΎΠΈΡΠΊ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
6. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° foreach ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ. ΠΡΠΈΠΌΠ΅Ρ
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅.
Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ Console Application ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π¦ΠΈΠΊΠ»Ρ foreach ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
8. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠΈΠΊΠ»Π° foreach ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΡΠΈΠΊΠ»Π°
ΠΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠΈΠΊΠ»Π° foreach :
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
Π ΡΠΎΠ½ΠΊΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΡ foreach Π² PHP
Π Π½Π΅Π΄Π°Π²Π½Π΅ΠΌ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ
ΡΡΡΠ»ΠΎΠΊ ΠΎ PHP Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΡΡΡΠ»ΠΊΡ Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΠΈΠΊΠΈΡΡ ΠΠΎΠΏΠΎΠ²Π° Π½Π° StackOverflow, Π³Π΄Π΅ ΠΎΠ½ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ΅ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌΒ» ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ foreach.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ foreach Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ ΡΡΡΠ°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ ΡΡΠ΅Π» ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ°.
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΡΡΠΎΡ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΡ
Π·Π½Π°Π½ΠΈΠΉ ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ zval’ΠΎΠ² Π² PHP, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π½Π°ΡΡ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ refcount ΠΈ is_ref.
foreach ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ ΡΠ°Π·Π½ΡΡ
ΡΠΈΠΏΠΎΠ²: Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ (Π³Π΄Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°) ΠΈ Ρ Traversable-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ (Π²Π΅ΡΠ½Π΅Π΅, ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΡ
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ get_iterator). ΠΠ΄Π΅ΡΡ ΠΌΡ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ
, Π½ΠΎ Ρ ΡΠΊΠ°ΠΆΡ ΠΈ ΠΎΠ± ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ, ΠΏΠ°ΡΠ° ΡΠ»ΠΎΠ² ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΠΈ ΠΈΡ ΠΎΠ±Ρ ΠΎΠ΄Π΅, Π²Π°ΠΆΠ½Π°Ρ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ±Ρ ΠΎΠ΄ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΠ°ΡΡΠΈΠ²Ρ Π² PHP ΡΠ²Π»ΡΡΡΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΌΠΈ Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ (ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ Π΅ΡΠ° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² Π΄Π²ΡΡΠ²ΡΠ·Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ) ΠΈ foreach ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡ ΠΌΠ°ΡΡΠΈΠ², ΡΠ»Π΅Π΄ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΡΡΠ΄ΠΊΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΠΏΡΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ. Π ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ»ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠ°. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² PHP ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²ΠΌΠ΅ΡΡΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ. ΠΡΠ»ΠΈ Π±Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΈΠ½Π°ΡΠ΅, PHP ΠΌΠΎΠ³ Π±Ρ ΡΠΏΠ°ΡΡΡ ΠΈΠ·-Π·Π° segmentation fault, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΡΠ½Π΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π΅ΠΎΠ±ΡΡΠ½ΠΎΠ΅.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ HashTable. Π’Π°ΠΊ ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π΅Π³ΠΎ, HashTable ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΈΠΌ. Π ΠΊΠΎΠ»Ρ ΡΠΊΠΎΡΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ Π² PHP Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Π° Π½Π΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅), Π²Ρ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ², ΡΡΠΎΠ±Ρ Π² ΡΠΈΠΊΠ»Π΅ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π²Π°ΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΊΡΡΠ°ΡΠΈ, Π½Π΅ ΡΠ°ΠΊΠ°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ΅Π΄ΠΊΠΎΡΡΡ), ΡΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ:
ΠΠ΄Π΅ΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΎΠ±Ρ ΠΎΠ±Π° ΡΠΈΠΊΠ»Π° Π±ΡΠ»ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ, Π° Π½Π΅ Ρ ΠΈΡΡΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡΠ²Π°Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΡΠ°ΠΊ, ΠΌΡ Π΄ΠΎΡΠ»ΠΈ Π΄ΠΎ foreach.
ΠΠ±Ρ ΠΎΠ΄ ΠΌΠ°ΡΡΠΈΠ²Π° Π² foreach
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, Π΄Π»Ρ ΡΠ΅Π³ΠΎ foreach ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ±ΠΎΠΉΡΠΈ Π΅Π³ΠΎ. ΠΠΎ ΡΡΠΎ ΡΠ²Π½ΠΎ Π½Π΅ Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ. Π‘Π΄Π΅Π»Π°Π΅Ρ PHP ΠΊΠΎΠΏΠΈΡ ΠΈΠ»ΠΈ Π½Π΅Ρ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ²:
ΠΡΠ°ΠΊ, ΡΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ ΡΠ°ΠΉΠ½Ρ: ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΡΠ°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΈ ΠΎΠ½Π° ΡΠΎΠΆΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π½Π°Ρ. Β«ΠΠ±ΡΡΠ½ΡΠΉΒ» ΠΎΠ±ΡΠ°Π·Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅ (ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² PHP β ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ foreach) Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ (ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄):
ΠΈΡΠ΅ΡΠ°ΡΠΈΡ foreach Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π°ΡΠ΅:
Π’Π°ΠΊΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ foreach ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ΄Π°Π»ΡΠ½, Π° Π½Π΅ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ (ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ). ΠΡΡ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ foreach (Π½ΠΎ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΠΎ Π²ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ ΡΠ°ΠΊ Ρ ΠΎΡΠΎΡΠΎ, ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ).
ΠΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ΄Π°
ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ foreach ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π² ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ (ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ). ΠΠΎ ΠΎΡΡΠΈΠ½ΡΡΠ΅ ΡΡΡΠ°Ρ : Ρ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ ΡΠΌΠΎΠ³ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½ΠΈΠ³Π΄Π΅, ΠΊΡΠΎΠΌΠ΅ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΡ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΎΠ² (Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»Π° Π² Π΄Π²Π° ΡΠ°Π·Π° Π±ΡΡΡΡΠ΅Π΅). ΠΠΎΡ ΠΎΠΆΠ΅, Π»ΡΠ΄ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΈΡΠ΅ΡΠΈΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ.
ΠΡΠΎΡΠΎΠ΅ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΉ. ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ foreach, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ. ΠΠ°Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ»Π½ΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π»ΠΈ ΠΎΠ½ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅), ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
Π ΡΡΠ΅ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ β ΠΈ ΡΡΡ ΠΌΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ Π²Π°ΡΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ β Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΠ΅ Π² ΡΠΈΠΊΠ»Π΅.
ΠΠΎΠ»ΡΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΠΏΠΎΠ³ΡΠ°Π½ΠΈΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² Π² Ρ ΠΎΠ΄Π΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ΅ΡΡΠ°Ρ PHP. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ°, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ 012 Π½Π° 013 Π² Π°Π΄ΡΠ΅ΡΠ΅, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ foreach Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ²Π»ΡΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ (Π²ΡΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΡΡΡΠ»ΠΎΠΊ ΠΈ.Ρ.Π΄.).
Π ΡΠ΅ΠΉΡΠ°Ρ Π²Π΅ΡΠ½ΡΠΌΡΡ ΠΊ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌ:
Π’Π° ΠΆΠ΅ ΡΠΈΡΡΠ°ΡΠΈΡ, ΡΡΠΎ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ΅ΡΡΠ΅.
ΠΠΎ ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΠ΅Π»ΡΠ½Ρ. ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π±ΡΡΡ ΠΏΠΎ Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ current Π² ΡΠΈΠΊΠ»Π΅:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅:
ΠΠ΄Π΅ΡΡ Ρ Π½Π°Ρ is_ref=1, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² Π½Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈ Π²ΡΡΠ΅). ΠΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ is_ref, ΠΌΠ°ΡΡΠΈΠ² Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΊ current. Π’Π΅ΠΏΠ΅ΡΡ current ΠΈ foreach ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² ΡΠ΄Π²ΠΈΠ½ΡΡΡΠΌ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ foreach ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ.
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΎΠ±Ρ ΠΎΠ΄ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌ:
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ Π²Π°ΡΠΈΠ°ΡΠΈΡ, Π·Π΄Π΅ΡΡ ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΠΈΠΌ Π½Π°Ρ ΠΌΠ°ΡΡΠΈΠ² Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:
ΠΡΠ΅ΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΡΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π΄Π²Π° ΡΠ»ΡΡΠ°Ρ:
ΠΠ±ΡΠ΅ΠΊΡ Π½Π΅ Traversable (Π²Π΅ΡΠ½Π΅Π΅, Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ get_iterator)
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ². Π’Π° ΠΆΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅: foreach Π·Π°ΠΏΡΡΡΠΈΡ Π½Π΅ΠΊΠΈΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ΅ ΠΏΠ°ΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΡΠ°ΠΊΡΠΎΠ²:
ΠΠ±ΡΠ΅ΠΊΡ Traversable
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΡ, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½ΠΈΠΊΠΎΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ PHP Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΡΡΡΠΊΠΈ Π²ΡΠΎΠ΄Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π΄ΠΎ ΠΏΡΠΎΡ ΠΎΠ΄Π° ΡΠΈΠΊΠ»Π°. Π― Π΄ΡΠΌΠ°Ρ ΡΡΠΎ ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΎΡ ΠΎΠ΄Π° ΠΏΠΎ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΌΡ (Traversable) ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΡΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ.
ΠΠ°ΠΌΠ΅Π½Π° ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΈΠΊΠ»Π°
ΠΡΡΠ³ΠΎΠΉ Π½Π΅ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π΅ ΡΠΏΠΎΠΌΡΠ½ΡΠ» β PHP Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΌΠ΅Π½Ρ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΈΠΊΠ»Π°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ, Π·Π°ΠΌΠ΅Π½ΠΈΠ² Π΅Π³ΠΎ Π½Π° ΠΏΠΎΠ»Π΄ΠΎΡΠΎΠ³Π΅ Π΄ΡΡΠ³ΠΈΠΌ. ΠΠ»ΠΈ Π½Π°ΡΠ°ΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, Π² Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, PHP ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠ°Π» ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡ Π΄ΡΡΠ³ΡΡ ΡΡΡΠ½ΠΎΡΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° Π·Π°ΠΌΠ΅Π½Π°.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ Π΄Π΅ΡΠ°Π»Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ foreach, ΠΊΠΎΡΠΎΡΡΡ Ρ Π½Π΅ ΡΠΏΠΎΠΌΡΠ½ΡΠ» (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΡΡΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ): ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠΈΡΡΡΡ Π΅ΡΠ»ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡ ΠΎΠ΄Π° ΡΠΈΠΊΠ»Π°.
Π’ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ ΡΠΎ, ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ: Π΅ΡΠ»ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ next ΠΈΠ»ΠΈ prev Π² ΡΠ΅Π»Π΅ ΡΠΈΠΊΠ»Π° (Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅), Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΡΡ, Π½ΠΎ ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ»ΠΎ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ foreach Π΄Π΅Π»Π°Π΅Ρ Π±Π΅ΠΊΠ°ΠΏ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈ Ρ Π΅ΡΠ° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² HashPointer ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡ ΠΎΠ΄Π° ΡΠΈΠΊΠ»Π°. ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΡ ΠΎΠ΄Π΅ foreach ΠΏΡΠΎΠ²Π΅ΡΠΈΡ, Π½Π΅ ΠΌΠ΅Π½ΡΠ»Π°ΡΡ Π»ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎΡ Ρ Π΅Ρ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡΒ». ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌ foreach:
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ unset ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡ foreach ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΎΡ ΠΎΠ΄Π΅ (ΠΊΠ»ΡΡ 1):
Π’ΡΡ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠ΅ΡΡΠΈΠΊ ΡΠ±ΡΠΎΡΠ΅Π½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ Ρ Π΅ΡΠΎΠΌ.
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, Ρ Π΅Ρ β Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Ρ Π΅Ρ. Π‘Π»ΡΡΠ°ΡΡΡΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ. ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΠΊ:
Π Π°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ. ΠΡ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΊΠ»ΡΡ EzFY (ΡΠΎΡ, Π³Π΄Π΅ ΠΊΠ°ΠΊ ΡΠ°Π· Π±ΡΠ» foreach), ΡΠ°ΠΊ ΡΡΠΎ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ ΡΠ±ΡΠΎΡ. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ 4.
Π Π²ΠΎΡ ΡΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π΅Π²Π΅Π΄ΠΎΠΌΠΎΠ΅. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ, Π΅ΡΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ»ΡΡ FYFY Ρ FYFZ? ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ:
Π‘Π΅ΠΉΡΠ°Ρ ΡΠΈΠΊΠ» ΠΏΠ΅ΡΠ΅ΡΡΠ» Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅. ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠ»ΡΡ FYFY ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΡ Ρ EzFY (Π²ΠΎΠΎΠ±ΡΠ΅-ΡΠΎ, Π²ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΎΠΆΠ΅). ΠΠΎΠ»Π΅Π΅ ΡΡΠΎΠ³ΠΎ, ΡΠ»Π΅ΠΌΠ΅Π½Ρ FYFY Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ Π°Π΄ΡΠ΅ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ EzFY ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π±ΡΠ» ΡΠ΄Π°Π»Π΅Π½. Π’Π°ΠΊ ΡΡΠΎ Π΄Π»Ρ PHP ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ° ΠΆΠ΅ ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ Ρ Π΅ΡΠΎΠΌ. ΠΠΎΠ·ΠΈΡΠΈΡ Β«Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°Β» ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΠΊΠΎΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π¦ΠΈΠΊΠ» for each Π² Java
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΠΌ ΠΠ°Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π±Π»ΠΎΠ³Π° Vertex Academy.
ΠΡ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠΈΠΊΠ»Ρ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ?
Π¦ΠΈΠΊΠ» for each :
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ° ΡΠΈΠΊΠ»Π° for ΠΈ ΡΠΈΠΊΠ»Π° for each.
1.ΠΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ° ΡΠΈΠΊΠ»Π° for:
2.ΠΠ±ΡΠ°Ρ ΡΠΎΡΠΌΠ° ΡΠΈΠΊΠ»Π° for each:
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π² ΡΠΈΠΊΠ»Π΅ for each ΡΠΈΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΈΠΏΡ ΠΌΠ°ΡΡΠΈΠ²Π°!
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ Π² ΡΠ΅ΠΌ ΠΆΠ΅ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌ 2 ΡΠΈΠΊΠ»Π°ΠΌΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΡΠ΅ΡΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π·Π°Π΄Π°ΡΡ 2-ΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
1. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for
2. C ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for each
ΠΠ°Π΄Π°ΡΠ° β1
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for
ΠΡΠ»ΠΈ ΠΡ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for each
ΠΡΠ»ΠΈ ΠΡ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π² ΡΠΈΠΊΠ»Π΅ for each ΡΠΈΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΈΠΏΡ ΠΌΠ°ΡΡΠΈΠ²Π°!
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² Ρ Π½Π°Ρ ΡΠΈΠΏΠ° int. ΠΠΎΡΡΠΎΠΌΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠΈΠΊΠ»Π° for each ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ:
ΠΠ°Π΄Π°ΡΠ° β2
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Arraylist. ΠΡΠ»ΠΈ ΠΡ Π΅ΡΠ΅ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅, ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠ°ΡΡΡ «Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Arraylist Π² Java».
1.Π Π΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for
ΠΡΠ»ΠΈ ΠΡ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
2.Π Π΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for each
ΠΡΠ»ΠΈ ΠΡ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π’Π°ΠΊ ΡΡΠΎ ΡΠΈΠΊΠ» for each ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°/ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°/ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ.
ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ Π½Π°ΡΠ° ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° ΠΠ°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Π°. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° Π½Π°ΡΠΈ ΠΊΡΡΡΡ ΠΏΠΎ Java Π² ΠΠΈΠ΅Π²Π΅. ΠΠ±ΡΡΠ°Π΅ΠΌ Ρ Π½ΡΠ»Ρ. ΠΠ΅ΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Ρ Π½Π°Ρ Π½Π° ΡΠ°ΠΉΡΠ΅.
forEach() JS β ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΠ΅ΡΠΎΠ΄ forEach() Π² ΡΠ·ΡΠΊΠ΅ JS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΡ ΠΎΠ΄Π° Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ°Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ β ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ Π΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ
array.forEach(function callback(currentValue, index, currentArray)[, thisArg]);
callback β ΡΠ° ΡΠ°ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠΈΠΊΠ»Π° forEach
Callback ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ΅Π»ΠΎΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. Π£ Π²Π°Ρ Π² html Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ
- , ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅:
ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ html ΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΡ:
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΡΠ΅, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Toyota Π½Π° Lexus:
ΠΠΈΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ forEach Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π°
Π JS ΠΌΠ΅ΡΠΎΠ΄ forEach ΡΠ΄Π΅Π»Π°Π½ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°, Π½ΠΎ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠΉΡΠΈΡΡ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΈΠΊΠ» for.
ΠΠ΅ΡΠ΅Π±ΠΎΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π²Π°ΠΌ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ.
ΠΡΠΈΠΌΠ΅Ρ 1. Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΎΡΠ²Π΅Ρ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°ΡΡΠ΅ 18
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ user ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ age ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ if ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΡΠ΅ΠΌΡ ΡΡΠ»ΠΎΠ²ΠΈΡ (18 Π»Π΅Ρ). ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎΠ³Π΄Π° Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΈΠΌΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
ΠΡΠΈΠΌΠ΅Ρ 2. ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ city.