рдкреАрдПрдЪрдкреА рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛рдУрдВ

рджрд┐рд▓рдЪрд╕реНрдк PHP рд▓рд┐рдВрдХ рдХреЗ рд╣рд╛рд▓ рдХреЗ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдореЗрдВ , рдореБрдЭреЗ рдирд┐рдХрд┐рддрд╛ рдкреЛрдкреЛрд╡ рдХреА рд╕реНрдЯреИрдХрдСрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рд▓рд┐рдВрдХ рдорд┐рд▓рд╛, рдЬрд╣рд╛рдВ рд╡рд╣ рдлрд╝реЙрд░рдЪреЗрдХ рдХрдВрдЯреНрд░реЛрд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЗ "рд╣реБрдб рдХреЗ рддрд╣рдд" рддрдВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рдХрднреА-рдХрднреА рд╡рд┐рдЪрд┐рддреНрд░ рдЕрдЬреАрдм рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕ рдЙрддреНрддрд░ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реАред

рдзреНрдпрд╛рди рджреЗрдВ: рдЗрд╕ рдкрд╛рда рдХрд╛ рддрд╛рддреНрдкрд░реНрдп PHP рдореЗрдВ zval'ov рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ refcount рдФрд░ is_ref рд╣реИрдВред
foreach рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рд╕рд╛рдзрд╛рд░рдг рд╡рд╕реНрддреБрдУрдВ (рдЬрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рдЧреБрдг рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВ) рдХреЗ рд╕рд╛рде рдФрд░ рдЯреНрд░реИрд╡рд░реНрд╕реЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде (рдпрд╛ рдмрд▓реНрдХрд┐, рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдЖрдВрддрд░рд┐рдХ get_iterator рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ)ред рдпрд╣рд╛рдВ рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдмрд╛рдХреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред

рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕рдВрджрд░реНрдн рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджред


рдХреИрд╕реЗ рд╕рд░рдгреА рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ



PHP рдореЗрдВ Arrays рдХреЛ рд╣реИрд╢ рдЯреЗрдмрд▓ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╣реИрд╢ рддрддреНрд╡реЛрдВ рдХреЛ рдПрдХ рджреЛрд╣рд░реА рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ) рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрджреЗрд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдЖрдбрд╝реВ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред

PHP рдореЗрдВ рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдмрд╛рд╣рд░реА рд╕рд░рдгреА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрдм рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрдВ рдХрд┐ рдХреЛрдИ рдХрд╕реНрдЯрдо рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдРрд╕рд╛ рдХреЛрдб рд╕рдмрд╕реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЬрдЧрд╣ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рдпрд╛ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░ред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, PHP рдХреЛ рдмрд╛рд╣рд░реА рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╕реВрдЪрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЕрдиреНрдпрдерд╛ рдереЗ, рддреЛ рдЬреИрд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЫ рдЕрд╕рд╛рдорд╛рдиреНрдп рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, PHP рдПрдХ рд╡рд┐рднрд╛рдЬрди рджреЛрд╖ рдХреЗ рдХрд╛рд░рдг рдЧрд┐рд░ рд╕рдХрддрд╛ рд╣реИред

рдЖрдВрддрд░рд┐рдХ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╣реИрд╢рдЯреЗрдмрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЬрдм рдЖрдк рдЗрд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реИрд╢рдЯреЗрдмрд▓ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЪреВрдВрдХрд┐ PHP рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ), рддреЛ рдЖрдк рд▓реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИрдВред

рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рдорд╣рддреНрд╡ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг (рд╡реИрд╕реЗ, рдпрд╣ рдмрд╣реБрдд рджреБрд░реНрд▓рдн рдирд╣реАрдВ рд╣реИ), рдпрд╣ рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реИ:

foreach ($array as $a) { foreach ($array as $b) { // ... } } 


рдпрд╣рд╛рдБ рдЖрдк рджреЛрдиреЛрдВ рдЫреЛрд░реЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рди рдХрд┐ рдХрд┐рд╕реА рдПрдХрд▓ рд╕реВрдЪрдХ рджреНрд╡рд╛рд░рд╛ рдЫрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ред

рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдПред

рдлреЙрд░реЗрдХреНрд╕ рдореЗрдВ рдРрд░реЗ рдЯреНрд░реЗрд╡рд▓



рдЕрдм рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдлреЛрд░рдЪреЗрдХ рдХреЛ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд░рдгреА рдХреА рдПрдХ рдкреНрд░рддрд┐ рдХреНрдпреЛрдВ рдмрдирд╛рдиреА рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреВрд░реА рдХрд╣рд╛рдиреА рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ PHP рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рдПрдЧрд╛ рдпрд╛ рдирд╣реАрдВ рдпрд╣ рдХрдИ рдХрд╛рд░рдХреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ:



рддреЛ рдпрд╣ рд░рд╣рд╕реНрдп рдХрд╛ рдкрд╣рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ: рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд╛рд░реНрдпред рджреВрд╕рд░рд╛ рднрд╛рдЧ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдпрд╣ рднреА рдЕрдЬреАрдм рд╣реИред "рдирд┐рдпрдорд┐рдд" рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкреИрдЯрд░реНрди рдЬрд┐рд╕реЗ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ (рдФрд░ рдЬрд┐рд╕реЗ рдЕрдХреНрд╕рд░ PHP рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдлрд╝реЙрд░рдЪ рд╕реЗ рдЕрд▓рдЧ) рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ (рдЫрджреНрдо-рдХреЛрдб):

 reset(); while (get_current_data(&data) == SUCCESS) { code(); move_forward(); } 

рдлрд╛рд░рд╕реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рджрд┐рдЦрддрд╛ рд╣реИ:

 reset(); while (get_current_data(&data) == SUCCESS) { move_forward(); code(); } 


рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ Move_forward () рдХреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реВрдк рдХреЗ рдЕрдВрдд рдореЗрдВ рдирд╣реАрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб $ i рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд░рдгреА рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдкреЙрдЗрдВрдЯрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА $ i + 1 рдХреЗ рддрддреНрд╡ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдлрд╝реЙрд░рдЪ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдпрд╣ рддрд░реАрдХрд╛ рднреА рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдПрдХ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЛ рдирд╣реАрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рддреЛ рд╕рд░рдгреА рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдкреЙрдЗрдВрдЯрд░ рдЕрдЧрд▓реЗ рддрддреНрд╡ рдкрд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлреЙрд░реНрдЪреНрдпреВрдирд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗ (рд▓реЗрдХрд┐рди, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЗрддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рддрддреНрд╡реЛрдВ рдХреЛ рд▓рдВрдШрди)ред

рдХреЛрдб рдкреНрд░рднрд╛рд╡



рдЙрдкрд░реЛрдХреНрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкрд╣рд▓рд╛ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ foreach рдХрдИ рдорд╛рдорд▓реЛрдВ (рдзреАрд░реЗ) рдореЗрдВ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕рд░рдгреА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдбрд░ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХреГрддреНрд░рд┐рдо рдмреЗрдВрдЪрдорд╛рд░реНрдХ (рдЬрд┐рд╕рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рджреБрдЧрдиреА рддреЗрдЬреА рд╕реЗ рдереА) рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХрд╣реАрдВ рднреА рдХрд╛рдо рдХреЗ рддреНрд╡рд░рдг рдХреЛ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрд╕ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред

рджреВрд╕рд░рд╛ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ рдЖрдорддреМрд░ рдкрд░ рдХреЛрдИ рдЕрдиреНрдп рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдлреЙрд░реНрдЪреНрдпреВрдирд░ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рдмрд╕ рдЙрд╕реА рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕рд╛ рд╡рд╣ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдирдХрд▓ рдХреИрд╕реЗ рд╣реЛрддреА рд╣реИ (рдФрд░ рдХреНрдпрд╛ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ), рдФрд░ рд╕рдордп рдкрд░ рдХрд┐рд╕ рд╡рд┐рд╢реЗрд╖ рдмрд┐рдВрджреБ рдкрд░ рд╕реВрдЪрдХ рдЪрд▓рддрд╛ рд╣реИред

рдФрд░ рддреАрд╕рд░рд╛ рдкрд░рд┐рдгрд╛рдо - рдФрд░ рдпрд╣рд╛рдБ рд╣рдо рд╕рд┐рд░реНрдл рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд░реАрдм рдЖ рд░рд╣реЗ рд╣реИрдВ - рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рд╣рдореЗрдВ рдмрд╣реБрдд рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рд╕рд░рдгреА рдХреЛ рд╕реНрд╡рдпрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЖрдк рд▓реВрдк рдореЗрдВ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

рдмреЙрд░реНрдбрд░рд▓рд╛рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕рдВрдЧреНрд░рд╣ рдЬреЛ рддрдм рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рджреМрд░рд╛рди рдПрдХ рд╕рд░рдгреА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, PHP рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдкрддреЗ рдореЗрдВ 012 рд╕реЗ 013 рддрдХ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд┐рддрд┐рдпреЛрдВ (рд▓рд┐рдВрдХ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░, рдЖрджрд┐) рдореЗрдВ рдЦреБрдж рдХреЛ рдХреИрд╕реЗ рдкреНрд░рдХрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдм рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд╛рдкрд╕:

 foreach ($array as $item) { echo "$item\n"; $array[] = $item; } print_r($array); /* Output in loop: 1 2 3 4 5 $array after loop: 1 2 3 4 5 1 2 3 4 5 */ 


рдпрд╣рд╛рдБ $ рд╕рд░рдгреА рдореЗрдВ рд▓реВрдк рд╕реЗ рдкрд╣рд▓реЗ refcount = 1 рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдбрд░реНрдлрд╝рд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк $ array [] рдХреЛ рд╡реИрд▓реНрдпреВ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ zval рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЬрд┐рд╕ array рдХреЛ рдЖрдк рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ iterable array рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдРрд░реЗ рд╣реЛрдВрдЧреЗред

 foreach ($array as $key => $item) { $array[$key + 1] = $item + 2; echo "$item\n"; } print_r($array); /* Output in loop: 1 2 3 4 5 $array after loop: 1 3 4 5 6 7 */ 


рдкрд╣рд▓реЗ рдЯреЗрд╕реНрдЯ рдореЗрдВ рдЬреИрд╕реА рд╕реНрдерд┐рддрд┐ рдереАред

 //    ,  ,      foreach var_dump(each($array)); foreach ($array as $item) { echo "$item\n"; } var_dump(each($array)); /* Output array(4) { [1]=> int(1) ["value"]=> int(1) [0]=> int(0) ["key"]=> int(0) } 1 2 3 4 5 bool(false) */ 


рдлрд┐рд░ рд╕реЗ рд╡рд╣реА рдХрд╣рд╛рдиреАред рдлреЙрд░рдЪ рд▓реВрдк рдХреЗ рджреМрд░рд╛рди, рдЖрдкрдХреЗ рдкрд╛рд╕ refcount = 1 рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ addref рдорд┐рд▓рддрд╛ рд╣реИ, рдЖрдВрддрд░рд┐рдХ рдкреЙрдЗрдВрдЯрд░ $ рдЕрд░реЗрдВрдЬ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реВрдк рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╕реВрдЪрдХ NULL рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкреВрд░реНрдг рд╣реИ)ред рдкреНрд░рддреНрдпреЗрдХ рдЧрд▓рдд рдкреНрд░рджрд░реНрд╢рди рдХрд░рдХреЗ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

 foreach ($array as $key => $item) { echo "$item\n"; each($array); } /* Output: 1 2 3 4 5 */ 


 foreach ($array as $key => $item) { echo "$item\n"; reset($array); } /* Output: 1 2 3 4 5 */ 


рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рд░реАрд╕реЗрдЯ рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред $ рд╕рд░рдгреА рдореЗрдВ рдЙрдирдХреЗ рдкрд╛рд╕ рдЖрдиреЗ рдкрд░ = 2 рдХрд╛ рд░рд┐рдлрдВрдб рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЗрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рд╕реЗ рдПрдХ рдЕрд▓рдЧ рд╕рд░рдгреА рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд▓реЗрдХрд┐рди рдпреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВред рдЬрдм рдЖрдк рд▓реВрдк рдореЗрдВ рдХрд░рдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИ:

 foreach ($array as $val) { var_dump(current($array)); } /* Output: 2 2 2 2 2 */ 


рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд░реНрддрдорд╛рди рдХреЛ рднреА рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рд░рдгреА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрдиреНрдп рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрд╕рд░реНрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЕрдЧрд▓реЗ, рдЬреЛ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд░реЗрдлрд░реА рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдпрд╣ рдПрдХ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред рд╕рдВрджрд░реНрдн рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рд░рдгреА рдХреЛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП $ рд╕рд░рдгреА рдФрд░ $ рд╕рд░рдгреА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЬреЛ рдлрд╝реЙрд░рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рд╡рд╣ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдЧреАред рдЖрдкрдХреЛ 2 рдХреНрдпреЛрдВ рдорд┐рд▓рддрд╛ рд╣реИ, 1 рдирд╣реАрдВ, рдКрдкрд░ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рд╕реВрдЪрдХ рдХреЛ рдлрд╝реЙрд░рд╡рд░реНрдб рдХрд░рддреЗ рд╣реИрдВ , рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдирд╣реАрдВред рдЗрд╕рд▓рд┐рдП, рднрд▓реЗ рд╣реА рдХреЛрдб рдЕрднреА рднреА рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдлрд┐рд░ рднреА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реВрдЪрдХ рдиреЗ рджреВрд╕рд░реЗ рдХреЛ рд╕реВрдЪрдХ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдЕрдм рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:

 $ref = &$array; foreach ($array as $val) { var_dump(current($array)); } /* Output: 2 3 4 5 false */ 


рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ is_ref = 1 рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд░рдгреА рдХреЙрдкреА рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ (рдКрдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ)ред рд▓реЗрдХрд┐рди рдЕрдм рдЬрдм is_ref рд╣реИ, рддреЛ рд╕рд░рдгреА рдХреЛ рд╡рд░реНрддрдорд╛рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд╛рд╕ рдХрд░рдХреЗ, рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдм рдХрд░рдВрдЯ рдФрд░ рдлреЛрд░рдЪ рдПрдХ рд╣реА рдПрд░реЗ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рд╕рд░рдгреА рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реБрдЖ рджреЗрдЦрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝реЙрд░реНрдЪрд░ рд╕реВрдЪрдХ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

рдЖрдк рдПрдХ рд╣реА рдЪреАрдЬрд╝ рджреЗрдЦреЗрдВрдЧреЗ рдЬрдм рдЖрдк рдПрдХ рд╕рд░рдгреА рдЯреНрд░реИрд╡рд░реНрд╕ рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рдХрд░реЗрдВрдЧреЗ:

 foreach ($array as &$val) { var_dump(current($array)); } /* Output: 2 3 4 5 false */ 


рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ foreach рд╣рдорд╛рд░реЗ $ array is_ref = 1 рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдЧрд╛ рдЬрдм рдпрд╣ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓реВрдк рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдКрдкрд░ рдЬреИрд╕рд╛ рд╣реЛрдЧрд╛ред

рдПрдХ рдФрд░ рдЫреЛрдЯрд╛ рдмрджрд▓рд╛рд╡, рдпрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреЗ рдПрд░реЗ рдХреЛ рджреВрд╕рд░реЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВрдЧреЗ:

 $foo = $array; foreach ($array as $val) { var_dump(current($array)); } /* Output: 1 1 1 1 1 */ 


рдпрд╣рд╛рдВ, рд▓реВрдк рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ $ рдПрд░реЗ рдХрд╛ рд░рд┐рдлрдВрдб 2 рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдХреЙрдкреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, $ рд╕рд░рдгреА рдФрд░ foreach рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рд░рдгреА рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрд╕ рд╕рд░рдгреА рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреЙрдЗрдВрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдорд┐рд▓рддреА рд╣реИ рдЬреЛ рд▓реВрдк рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдереА (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдереА)ред

рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди



рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддреЗ рд╕рдордп, рджреЛ рдорд╛рдорд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ:

рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реИрд╡рд░реНрд╕реЗрдмрд▓ рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдмрд▓реНрдХрд┐, get_iterator рдЖрдВрддрд░рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ)


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд▓рдЧрднрдЧ рдЙрд╕реА рддрд░рд╣ рд╣реЛрддреА рд╣реИ рдЬреИрд╕реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИред рдПрдХ рд╣реА рдкреНрд░рддрд┐ рд╢рдмреНрджрд╛рд░реНрдеред рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░: рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдЧреБрдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП foreach рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдЪрд▓рд╛рдПрдЧрд╛ред рдХреБрдЫ рдФрд░ рд░реЛрдЪрдХ рддрдереНрдп:



рдЯреНрд░реИрд╡рд░реНрд╕реЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, PHP рдХреЙрдкреА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рдХрд┐рд╕реА рднреА рдЯреНрд░рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдмрдврд╝рд╛рдирд╛ рдЬрдм рддрдХ рдХрд┐ рд▓реВрдк рдкрд╛рд╕ рди рд╣реЛ рдЬрд╛рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЯреНрд░реИрд╡рд░реНрд╕реЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреА рд╡рд┐рдзрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдФрд░ рд╡рд┐рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд▓реВрдк рдХреЗ рджреМрд░рд╛рди рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБ рдХреЛ рдмрджрд▓рдирд╛



рдПрдХ рдФрд░ рдЕрд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдкреАрдПрдЪрдкреА рд▓реВрдк рдХреЗ рджреМрд░рд╛рди рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╡рд╕реНрддреБ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдк рдПрдХ рд╕рд░рдгреА рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЖрдзреЗ рд░рд╛рд╕реНрддреЗ рд╕реЗ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдПрдХ рд╕рд░рдгреА рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдлрд┐рд░ рдЙрд╕реЗ рдПрдХ рд╡рд╕реНрддреБ рд╕реЗ рдмрджрд▓реЗрдВ:

 $arr = [1, 2, 3, 4, 5]; $obj = (object) [6, 7, 8, 9, 10]; $ref =& $arr; foreach ($ref as $val) { echo "$val\n"; if ($val == 3) { $ref = $obj; } } /* Output: 1 2 3 6 7 8 9 10 */ 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рд╣реА рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рд╣реБрдЖ, PHP рдиреЗ рджреВрд╕рд░реА рдЗрдХрд╛рдИ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдмрджрд▓рдирд╛



рдлреЙрд░рдЪ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдВрддрд┐рдо рд╡рд┐рд╡рд░рдг, рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ (рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ): рдпрджрд┐ рдЖрдк рд▓реВрдк рдХрд░рддреЗ рд╕рдордп рд╕рд░рдгреА рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рд╡рд╣ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЙрдореНрдореАрдж рдереА: рдпрджрд┐ рдЖрдк рд▓реВрдк рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдЕрдЧрд▓реЗ рдпрд╛ рдкреНрд░рдЪрд▓рд┐рдд рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ (рд╕рдВрджрд░реНрдн рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ), рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдкреЙрдЗрдВрдЯрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реБрдЖред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рджрд░реНрд░реЗ рдХреЗ рдмрд╛рдж рд╣реИрд╢рдкреЙрдЗрдВрдЯ рдореЗрдВ рдХрд░рдВрдЯ рдкреЛрдЬреАрд╢рди рдФрд░ рд╣реИрд╢ рддрддреНрд╡ рдореЗрдВ рд╣реИрд╢ рдХрд╛ рдлреЛрд░рдЪ рдмреИрдХрдЕрдк рд╣реЛрддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рдкрд╛рд╕ рдкрд░, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдВрддрд░рд┐рдХ рд╣реИрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЧрдИ рд╣реИ рдФрд░ рдЗрд╕ рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝реЙрд░рдЪреЗрдХ рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рдХрд╛ "рдкреНрд░рдпрд╛рд╕" рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИред рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдкреЙрдЗрдВрдЯрд░ рдмрджрд▓рдиреЗ рд╕реЗ рдлрд╝реЙрд░рдЪ рдореЛрдб рдХреИрд╕реЗ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ:

 $array = [1, 2, 3, 4, 5]; $ref =& $array; foreach ($array as $value) { var_dump($value); reset($array); } // output: 1, 2, 3, 4, 5 


рдЖрдЗрдП рдЕрдм рдкрд╣рд▓реЗ рдкрд╛рд╕ (рдХреБрдВрдЬреА 1) рдкрд░ рдЖрдбрд╝реВ рджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдБрдЪрдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХреЛ рдЕрдирд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

 $array = [1, 2, 3, 4, 5]; $ref =& $array; foreach ($array as $value) { var_dump($value); unset($array[1]); reset($array); } // output: 1, 1, 3, 4, 5 


рдпрд╣рд╛рдВ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреБрдХреНрдд рд╣реИрд╢ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХреЛ рдвреВрдВрдврдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдПрдХ рд╣реИрд╢ рд╕рд┐рд░реНрдл рдПрдХ рд╣реИрд╢ рд╣реИред рдЯрдХрд░рд╛рд╡ рд╣реЛрддрд╛ рд╣реИред рдЕрдм рдЗрд╕реЗ рдЖрдЬрдорд╛рддреЗ рд╣реИрдВ:

 $array = ['EzEz' => 1, 'EzFY' => 2, 'FYEz' => 3]; $ref =& $array; foreach ($array as $value) { unset($array['EzFY']); $array['FYFZ'] = 4; reset($array); var_dump($value); } // output: 1 1 3 4 


рдпрд╣ рд╣рдорд╛рд░реА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рдордиреЗ EzFY рдХреБрдВрдЬреА (рд╡рд╣ рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рдлрд╝реЙрд░реЗрд╕реНрдЯ рдерд╛) рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдПрдХ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдордиреЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреБрдВрдЬреА рднреА рдЬреЛрдбрд╝реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рд╣рдо 4 рджреЗрдЦрддреЗ рд╣реИрдВред

рдФрд░ рдпрд╣рд╛рдБ рдЕрдЬреНрдЮрд╛рдд рдЖрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк FYFY рдХреЛ FYFZ рд╕реЗ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдЖрдЗрдП рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:

 $array = ['EzEz' => 1, 'EzFY' => 2, 'FYEz' => 3]; $ref =& $array; foreach ($array as $value) { unset($array['EzFY']); $array['FYFY'] = 4; reset($array); var_dump($value); } // output: 1 4 


рдЕрдм рдЪрдХреНрд░ рд╕реАрдзреЗ рдирдП рддрддреНрд╡ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ, рдмрд╛рдХреА рд╕рдм рдХреЛ рдЫреЛрдбрд╝рдХрд░ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ FYFY рдХреБрдВрдЬреА рдореЗрдВ EzFY (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рд╕рд░рдгреА рд╕реЗ рд╕рднреА рдХреБрдВрдЬрд┐рдпрд╛рдБ) рдХреЗ рд╕рд╛рде рдЯрдХреНрдХрд░ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, FYFY рддрддреНрд╡ EzFY рддрддреНрд╡ рдХреЗ рд╕рдорд╛рди рдореЗрдореЛрд░реА рдкрддреЗ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ рдЬрд┐рд╕реЗ рдЕрднреА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ PHP рдХреЗ рд▓рд┐рдП рдпрд╣ рдЙрд╕реА рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рд╣реЛрдЧреАред рд╕реНрдерд┐рддрд┐ "рдмрд╣рд╛рд▓" рд╣реИ рдФрд░ рд╕рд░рдгреА рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рдВрдХреНрд░рдордг рд╣реИред

Source: https://habr.com/ru/post/In172647/


All Articles