JPHP - рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕реГрд╖реНрдЯрд┐ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЬреЗрдкреАрдПрдЪрдкреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдФрд░ рддрдХрдиреАрдХреА рдкрдХреНрд╖ рд╕реЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред рдкрд╛рда рд╕рд░рд▓ PHP рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рд╕рдВрдХрд▓рдХ рдХреЗ рдкреНрд░реЗрдорд┐рдпреЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рднрд╛рд╖рд╛ рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рдЫрд╡рд┐

JPHP рдЬрд╛рд╡рд╛ VM рдХреЗ рд▓рд┐рдП рдПрдХ PHP рднрд╛рд╖рд╛ рд╕рдВрдХрд▓рдХ рд╣реИред рджреЛ рд╣рдлреНрддреЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рдерд╛ред рдЗрд╕реА рддрд░рд╣ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд░реВрдмреА рдХреЗ рд▓рд┐рдП рд░реВрдмреА, рдЕрдЬрдЧрд░ рдХреЗ рд▓рд┐рдП рдЬреЗрдереЙрди рд╣реИрдВред рдЬреЗрдкреАрдПрдЪрдкреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж, рджреЛ рджрд┐рдиреЛрдВ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдиреЗ рдЬреАрдердм рдкрд░ 500 рд╕рд┐рддрд╛рд░реЛрдВ рдХрд╛ рд╕реНрдХреЛрд░ рдХрд┐рдпрд╛ рдФрд░ рди рдХреЗрд╡рд▓ рд░реБрдиреЗрдЯ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛, рдмрд▓реНрдХрд┐ рд╡рд┐рджреЗрд╢реА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рднреА, рдЬреАрдердм рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдкрд╣рд▓рд╛ рд╕реНрдерд╛рди рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реАред

рдФрд░ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЦрдмрд░ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗред

рдирд╡реАрдирддрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдорд╛рдЪрд╛рд░




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

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдирд╛рдпрд╛рд╕ рд╢реБрд░реВ рд╣реБрдИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЕрд░реНрдерд╛рддреНред рдЬреЗрд╡реАрдПрдо рдХреЗ рд▓рд┐рдП php рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред Resin рд╕реЗ Quercus рдЬреИрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдпрд╣ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдЬрд╛рд╡рд╛ рдХреЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рджрдХ рд╣реИред рдЗрд╕ рд░рд╛рдЬреНрдп рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрд░реЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рдереА, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдХрд╣рд╛ рдХрд┐ рдЙрдирдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди Zend PHP + APC рдХреЗ рд╕рдорд╛рди рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рддрдХ, JVM (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП p8 рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯрд░) рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп PHP рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдереЗ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдорд░ рдЧрдП рдФрд░ рдмрдВрдж рд╣реЛ рдЧрдПред

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

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд╕рднреА рдкреНрд░рд╕рд┐рджреНрдз рдЬреЗрд╡реАрдПрдо рднрд╛рд╖рд╛рдУрдВ (рдЧреНрд░реВрд╡реА, рдЬреБрдмреА, рд╕реНрдХрд╛рд▓рд╛) рдХреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЧреБрдЬрд░рд╛ рдФрд░ рдкрд╛рдпрд╛ рдХрд┐ рдЬреЗрд╡реАрдПрдо рдмрд╛рдпрдЯреЗрдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗ рдХрд┐рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ - рдПрдПрд╕рдПрдо ред рдпрд╣ рдХрд╛рдлреА рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдкреАрдбреАрдПрдл рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рд▓реЗрдЦрди рд╣реИ, рдФрд░ рдпрд╣ рднреА Dalvik (Android) bytecode (рдиреАрдЪреЗ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред

рдкреЗрд╢ рд╣реИ рдЬрд╛рд╡рд╛ рд╡реАрдПрдо


рдЬрд╛рд╡рд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди (JVM) рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИред рдЖрдк рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдПрд╕рд╡реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдЬреЗрд╡реАрдПрдо рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдЧреНрд░рд╛рдлреЛрдВ рдореЗрдВ VM рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

1. рд╕реНрдЯреИрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди
2. рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЛ рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рд░рдЬрд┐рд╕реНрдЯрд░ рдЬреИрд╕рд╛ рдХреБрдЫ)
3. рдЬреАрд╕реА (рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛) рдХреЛ рд╡реАрдПрдо рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
4. VM рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╡рд╕реНрддреБрдПрдВ рдФрд░ рдХрдХреНрд╖рд╛рдПрдВ
5. рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдорд╛рдирдХ рд╕рдВрдЪрд╛рд▓рди - POP, PUSH, DUP, INVOKE, JMP, рдЖрджрд┐ред
6. рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдВрдд рдореЗрдВ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ рдХреИрдЪ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдЯрдХреЛрдб рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ
7. VM рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рди рд╣реИрдВ: int32, int64, float, double, Objects, scalar arrays, object arrays, int32 рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреВрд▓, рд╢реЙрд░реНрдЯ, рдмрд╛рдЗрдЯ, рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рдЬреАрд╕реА рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред

рд▓рдХреНрд╖реНрдпреЛрдВ рдФрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреА рдкрд╕рдВрдж


рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ PHP рдХреЗ рдореБрдЦреНрдп рд▓рд╛рднреЛрдВ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рд▓рд┐рдпрд╛, рди рдХреЗрд╡рд▓ рдПрдХ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рднреАред рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдЪреАрдЬреЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреАрдЬреЗрдВ рдереАрдВ:



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



рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ


рдЬрд╛рд╡рд╛ рд╡реАрдПрдо рд╕реНрддрд░ рдкрд░, рдХреЛрдИ рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди PHP рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдХреА рддрд░рд╣ рдкреНрд░рддреАрдд рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдореЗрдореЛрд░реА рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред JPHP рдорд╛рдиреЛрдВ рдХреЛ рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ StringMemory, NullMemory, DoubleMemory, LongMemory, TrueMemory, FalseMemory, ArrayMemory рдФрд░ ObjectMemory рдХрдХреНрд╖рд╛рдПрдВ рд▓рд╛рдЧреВ рдХреАрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдирд╛рдо рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ - рд╕рдВрдЦреНрдпрд╛, рддрд╛рд░, рдЖрджрд┐ред рдпреЗ рд╕рднреА рдореЗрдореЛрд░реА рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рдереЗред

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

рдЫрджреНрдо рдХреЛрдб рдЙрджрд╛рд╣рд░рдг
 $var + 20; //     //   $var    Memory $var->plus(20); //   plus      Memory $x + 20 - $y /*   */ $x->plus(20)->minus($y); 

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдЫрджреНрдо рдХреЛрдб рд╣реИ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ php рдХреЛрдб рдирд╣реАрдВред рдпрд╣ рд╕рдм рд╣реБрдб рдХреЗ рддрд╣рдд рд╣реЛрддрд╛ рд╣реИ, рдмрд╛рдпрдЯреЗрдХреЛрдб рдореЗрдВред


рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ Zend PHP рд╕реЗ рдЬрд╝рд╡рд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ JPHP рдФрд░ Zend PHP рдореЗрдореЛрд░реА рдЦрдкрдд рдореЗрдВ рд▓рдЧрднрдЧ рдмрд░рд╛рдмрд░ рд╣реИред рдХрдИ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЭреВрдареА, рд╕рдЪреНрдЪреА, рдЕрд╢рдХреНрдд, рдЫреЛрдЯреА рд╕рдВрдЦреНрдпрд╛) рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╣рд░ true рд▓рд┐рдП рдПрдХ рдирдпрд╛ TrueMemory рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ? рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред

рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдФрд░ рдЗрд╕рдХреЗ рд╕реБрдзрд╛рд░ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛


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

 //    $y = $x + 2; //     (  ) $y->assign( $x->plus( new LongMemory(2) ) ); 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - "2" рдПрдХ рд╡рд╕реНрддреБ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛, рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдГрд╕реНрд╡рдкреНрди рдерд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреЗ Zend PHP рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

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

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдЪреНрдЫреЗ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдиреЗ Zend PHP рдХреЛ 2-3-4-10 рдЧреБрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕реЗ рдЖрдЧреЗ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЫреЛрд░реЛрдВ, рдЪрд░, рдЖрджрд┐ рдкрд░ред

рдЪрд░реЛрдВ рдХрд╛ рдЬрд╛рджреВ


PHP рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЬрд╛рджреВ рдХреА рднрд╛рд╖рд╛ рд╣реИ, рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдирд╛рдо рд╕реЗ рдПрдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг:

 $var = "foobar"; ${'var'} = 100500; $name = 'var'; echo $$name; 


рдЗрд╕ рддрд░рд╣ рдХреЗ рдЬрд╛рджреВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЪрд░ рдирд╛рдо рддрд╛рд▓рд┐рдХрд╛ - рдПрдХ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред JVM рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рдирд╛рдореЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдПрдХ рдЕрдзрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рдХрджрдо рд╣реИ, рдпрд╣ рд╣реИрд╢ рдЯреЗрдмрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рддрдХ рдмрд╣реБрдд рдЬрд▓реНрджреА рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рддреБрд▓рдирд╛ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рддреЗрдЬреА рд╕реЗ рд╣реЛрдЧрд╛ - рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗрдВ рдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд░рдгреА рддрдХ рдкрд╣реБрдВрдЪрдирд╛?

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдпрд╛ рдФрд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рдкрд░ рдЪрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдЪрд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдмрд░рд╛рдмрд░ рдерд╛ред рдЬрдм рдореБрдЭреЗ рдРрд╕рд╛ рдЬрд╛рджреВ рдпрд╛рдж рдЖрдпрд╛, рддреЛ рдореБрдЭреЗ рд╣реИрд╢ рдХреЗ рд▓рд┐рдП рдореЗрдЬ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдкрдбрд╝рд╛ рдФрд░ ... рд╕рдм рдХреБрдЫ рдЦрд░рд╛рдм рдерд╛ред рдЪрд░ рдХреЗ рд╕рд╛рде рдЙрддреНрдкрд╛рджрдХрддрд╛ 2-3 рдмрд╛рд░ рд╕рдЪрдореБрдЪ рдЧрд┐рд░ рдЧрдИред

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

  1. рдпрджрд┐ рдХреЛрдб рдореЗрдВ рднрд╛рд╡ рд╣реИрдВ: $$var , ${...}
  2. рдЗрд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реИрдВ, рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, get_defined_vars, extract, рдХреЙрдореНрдкреИрдХреНрдЯ
  3. рдЧреНрд▓реЛрдмрд▓ рд╕реНрдХреЛрдк


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

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

рд╕реБрдкрд░ - рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░
$GLOBALS, $_SERVER, $_ENV .. , рдРрд╕реЗ рдЪрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рд╡реИрд╢реНрд╡рд┐рдХ рдХреАрд╡рд░реНрдб рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЙрдирдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рд╕рдВрдХрд▓рдХ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рд╕реБрдкрд░-рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдирд╛рдо рдЬрд╛рдирддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рд╡реЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдРрд╕реЗ рдЪрд░ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреНрдп рдХреЛрдб, рдПрдХ рдЫрджреНрдо рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

рд╕реБрдкрд░ рдЧреНрд▓реЛрдмрд▓ рд╡реИрд░рд┐рдПрдмрд▓ рдЙрджрд╛рд╣рд░рдг
 function test() { $a = $GLOBALS['a']; ... $GLOBALS['x'] = 33; } //        function test() { $GLOBALS =& getGlobalVar('GLOBALS'); //   $a->assign($GLOBALS['a']); ... $GLOBALS['x']->assign(33); } 



рдПрд░реЗрд╕, рд╕рдВрджрд░реНрдн рдФрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдореВрд▓реНрдп, рдЬреАрд╕реА


PHP рдореЗрдВ, рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕рдордп рд╕рд░рдгреА рдХреЙрдкреА рдХрд░рдирд╛ = рдирд╣реАрдВ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдУрд╡рд░рд╣реЗрдб рдХрд╛ рдПрдХ рдмрд╣реБрдд рдкреИрджрд╛ рдХрд░реЗрдЧрд╛ред JPHP рдЗрдВрдЬрди рдХреЗ рдЕрдВрджрд░, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ Zend PHP рдореЗрдВ, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░рдгреА рдмрджрд▓рдиреЗ рдХреЗ рд╕рдордп, рдЗрд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рд╕рд░рдгреА рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛> 1 рд╣реИ)ред

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

 $x = array(1, 2, 3); $y = $x; $y[0] = 100; //    $y ,     $x //       (-): $x->assign( array(1,2,3) ); $y->assign($x->toImmutable()); //     $x $y[0]->assign(100); //    : $y =& $x; //   ->toImmutable    $y->assign($x); 

JPHP рдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ - ReferenceMemory, рдпреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрд╕ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪрд░ рд╣рдореЗрд╢рд╛ рд╕рдВрджрд░реНрдн рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдРрд╕реЗ рд▓рд┐рдВрдХ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реЗрд▓ рдХреЛ рдПрдХ рдирдпрд╛ рдореВрд▓реНрдп рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдмрд╛рдпрдЯреЗрдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ->assign().

рд╕рдВрджрд░реНрдн рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЕрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдХреЛ toImmutable рдореЗрдердб рд╕реЗ toImmutable , рдФрд░ рдПрд░реЗ рдХреЛ рдПрд░реЗ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реЗрдлрд░реЗрдВрд╕ рдХреЙрдкреА рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдкрд╣рд▓реА рдмрд╛рд░ рдмрджрд▓реЗ рдЬрд╛рдиреЗ рдкрд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдЪрд░ рдХреЛ рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ toImmutable рд╡рд┐рдзрд┐ред

рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдЬреЗрд╡реАрдПрдо рд╕реНрддрд░ рдкрд░ рдХрдХреНрд╖рд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдЬрд╛рд╡рд╛, рд╕реНрдХрд╛рд▓рд╛, рдЧреНрд░реВрд╡реА, рдЬреЗрдЖрд░рдпреВрдмреА рдЬреЗрд╡реАрдПрдо рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╡рд░реНрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред PHP рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп, JPHP JVM рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ:

 Memory methodName(Environment env, Memory[] args) 

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

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

JVM рдЖрд╕рд╛рдиреА рд╕реЗ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдореЗрдореЛрд░реА рд╕реЗ рдХрдХреНрд╖рд╛рдПрдВ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдЕрдкрдирд╛ рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, JPHP рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдХрдХреНрд╖рд╛рдПрдВ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдирд╣реАрдВред

рд▓рдВрдмреА рд╢реБрд░реБрдЖрдд рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рдирд╛


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

php \ lang \ System рд╡рд░реНрдЧ
 import php.runtime.Memory; import php.runtime.env.Environment; import php.runtime.lang.BaseObject; import php.runtime.reflection.ClassEntity; import static php.runtime.annotation.Reflection.*; @Name("php\\lang\\System") final public class WrapSystem extends BaseObject { public WrapSystem(Environment env, ClassEntity clazz) { super(env, clazz); } @Signature private Memory __construct(Environment env, Memory... args) { return Memory.NULL; } @Signature(@Arg("status")) public static Memory halt(Environment evn, Memory... args) { System.exit(args[0].toInteger()); return Memory.NULL; } } 


рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЬреЗрдкреАрдПрдЪрдкреА рдХреЗ рд▓рд┐рдП рдирдИ рджреЗрд╢реА рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝реА, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХрдХреНрд╖рд╛рдПрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдордп рдмрдврд╝ рдЧрдпрд╛ред рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдФрд░ рд╡рд░реНрдЧ рдереЗ, рдЗрдВрдЬрди рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рд╡рд┐рд▓рдВрдм рд╣реБрдЖред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рди рдХрд░ рджрд┐рдпрд╛ред рдФрд░ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ - рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред

PHP рдПрдХ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЖрд▓рд╕реА рд╡рд░реНрдЧ рд▓реЛрдбрд┐рдВрдЧ рддрдВрддреНрд░ рд╣реИ, рд╣рд░ рдХреЛрдИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдореИрдВрдиреЗ рджреЗрд╢реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдЖрд▓рд╕реА рд╡рд░реНрдЧ рд▓реЛрдбрд┐рдВрдЧ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЬрдм рдПрдХ рджреЗрд╢реА рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдирд╛рдо рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рдордп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрдВрдЬреАрдХрд░рдг рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ, рдореБрдЭреЗ рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗ, рдЗрдВрдЬрди рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдордп 2-3 рдЧреБрдирд╛ рдХрдо рд╣реЛ рдЧрдпрд╛, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╕рдордп 24 рд╕реЗрдХрдВрдб рд╕реЗ рдШрдЯрдХрд░ 13 рд╕реЗрдХрдВрдб рд╣реЛ рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рдореВрд▓ рдЖрд░рдВрднрд┐рдХ рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрдВрдЬрди рдЖрд░рдВрднреАрдХрд░рдг рдХреА рдЧрддрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧреАред

рдЬреАрдпреВрдЖрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЗрдВрдЬрди рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдкреАрдб рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдЬреЗрд╡реАрдПрдо рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛


1. рдЬреЗрд╡реАрдПрдо рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдирд╛рдордХрд░рдгред JVM рдХрдХреНрд╖рд╛ рдХреЗ рдирд╛рдордХрд░рдг рдорд╛рдирдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдлрд╛рдЗрд▓ рдХреЛ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдмрд╛рдИрдЯреЗрдХреЛрдб рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ JVM рдЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдирд╛рдордХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╣реИред рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ PSR-0 рдорд╛рдирдХ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рд╡рд░реНрдЧ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ jvm рдкреИрдХреЗрдЬ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред PHP рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╡рд░реНрдЧреЛрдВ рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреА рд╣реИ, рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЛрдИ рднреА рдлреИрдВрд╕реА рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдЬреЗрдкреАрдПрдо рд╡рд░реНрдЧреЛрдВ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП php рд╡рд░реНрдЧреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рдмрд╛рдЗрдЯреЗрдХреЛрдб рдХреЗ рдЕрдВрджрд░ рдмрд╛рдБрдзрдирд╛ рдкрдбрд╝рд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдкрд╕рдВрдж рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ ...

2. рдЕрджреНрд╡рд┐рддреАрдп рд╡рд░реНрдЧ рдХреЗ рдирд╛рдоред рдЬреЗрдкреАрдПрдЪрдкреА рдкреНрд░рд╛рдкреНрдд рдмрд╛рдпреЛрдЯреЗрдХ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рдХрд┐рд╕реА рднреА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЬреЗрд╡реАрдПрдо рд╕реНрддрд░ рдкрд░ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдЕрджреНрд╡рд┐рддреАрдп рдирд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдХреЛрдИ рд╕рдВрдШрд░реНрд╖ рди рд╣реЛред Jvm bytecode рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рд╡рд░реНрдЧ рдирд╛рдо рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдпреВрд╡реАрдЖрдИрдбреА-рдЖрдзрд╛рд░рд┐рдд рдЬреЗрд╡реАрдПрдо + рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд░реНрдЧ рдирд╛рдо рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдПрдХ рдмреЗрд╣рддрд░ рд╣реИред рдЖрдк рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЬрд┐рд╕рдореЗрдВ рдХрдХреНрд╖рд╛ рд╕реНрдерд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХрдХреНрд╖рд╛ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдЗрдЯрдХреЛрдб рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред

3. рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреА рд╕реАрдорд╛ред рдЬрд╛рд╡рд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╡рд░реНрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЕрд░реНрдерд╛рддреНред super.call() , рдФрд░ php parent:: рдмреЗрд╢рдХ, рдЬрд╛рд╡рд╛ 7 рдиреЗ invokeDynamic рдХреА рд╢реБрд░реБрдЖрдд рдХреА, рдЬреЛ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдзреАрдорд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред InvokeDynamic рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛ 7 рдореЗрдВ рдЦрд░рд╛рдм рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдХрд╛рд░рдг рдереА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрд╛рд╡рд╛ 8 рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рдереА рдФрд░ рдЕрдм рд╡реЗ рдЧрддрд┐ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВ (рд╢рд╛рдпрдж рдореИрдВ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рддреИрдпрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ 6 рдФрд░ рдЖрд╕рд╛рди рдЕрдиреБрдХреВрд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрдирд╡реЛрдХ рдбрд╛рдпрдирд╛рдорд┐рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдмрд┐рдВрдм рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрд╛рдлреА рд╢рд╛рдиреНрддрд┐ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ jvm рд╡рд░реНрдЧреЛрдВ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рддрдВрддреНрд░ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП jvm рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕реНрддрд░ рдкрд░ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ - рдПрд▓реНрдЧреЛрд░рд┐рдердо method_name + $ + index ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдиреЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдирд╣реАрдВ рдХреА рдФрд░ рди рд╣реА, рд▓реЗрдХрд┐рди рдпрд╣ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рдХреИрд╕реЗ рд▓рдХреНрд╖рдг рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП


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

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

 trait Foobar { function test(){ echo __CLASS__; } } class A { use Foobar; } $a = new A(); $a->test(); 


рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ __CLASS__ рдХреЛ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рд╕рдордп рдкрд░ рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рдирд╛рдо рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рд╕реНрдерд┐рдд рд╣реИред рдЖрдк рд▓рдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЧрдгрдирд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рд▓рдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд▓рдХреНрд╖рдгреЛрдВ рдореЗрдВ __TRAIT__ рдирд┐рд░рдВрддрд░ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ __CLASS__ рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рднрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде self рдФрд░ self::class рднреА рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреА рдирдХрд▓ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

Zend рдХреНрд░рдо рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ


рдпрд╣рд╛рдБ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреНрд╡рд╛рд░рд╛, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдорд╛рдирдХ PHP рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╕рд╣рд┐рдд zend рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ C рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рддрдХ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ - рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рд╕рд░рдгрд┐рдпреЛрдВ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред рдЬреИрд╕реЗ php рдореЗрдВред , 1-2-3 , , . php , .

- , , JPHP wordpress symfony . :

: ┬л JPHP wordpress, symfony, yii , zend , . HHVM┬╗.

: ┬л JPHP php- , , ?┬╗.


, Zend Runtime . PHP , . , , - .

Zend Runtime


core , JPHP, namespace php , . :

  1. php\lang\Module тАФ include require. ( include), , . , . Stream .
    , include require, .
  2. php\io\Stream тАФ fopen, fwrite, .. , typehinting , Stream , , ..
  3. php\lang\Thread, php\lang\ThreadGroup тАФ . , 2 .
  4. php\io\File тАФ , , File Java,
  5. Java , , , , java Java
  6. php\lang\EnvironmentрдХреЛрдб рд╕рдорд░реНрдерди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╛рддрд╛рд╡рд░рдг: HOT_RELOADрдЧрд░реНрдо-рд╕реНрд╡реИрдкрд┐рдВрдЧ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдФрд░ CONCURRENTрдХрдИ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рд╕рдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред


рдпрд╣ рд╕реВрдЪреА рдЕрднреА рдкреВрд░реА рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдЗрд╕ рдкрд░ рдареАрдХ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВред

рдЬреЗрдкреАрдПрдЪрдкреА рдкрд░реАрдХреНрд╖рдг


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

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд░рд▓ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗ, рдЙрд╕ рд╕рдордп рдореИрдВ рднрд╛рд╖рд╛ рдХреЗ рдЬрдЯрд┐рд▓ рдЬрд╝реЗрдВрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рд▓реЗрдХрд┐рди рдЬреЗрдкреАрдПрдЪрдкреА рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдЬрд╝реЗрдВрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рдХреА, рдЬреЛ рдХрд┐ рд╕реНрд╡рдпрдВ php рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рднреА рд╕рд╣реА рдирд╣реАрдВ рд╣реИрдВ, рдХрднреА-рдХрднреА рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛ред рдЖрдк рд╕рдордЭреЗрдВрдЧреЗ, рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ: рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг, рдкрд░реАрдХреНрд╖рдг рдХреЗ set_error_handlerрдЕрдВрджрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИfopen . , ? zend , :

Unit
 --TEST-- Use instead to solve a conflict. --FILE-- <?php error_reporting(E_ALL); trait Hello { public function saySomething() { echo 'Hello'; } } trait World { public function saySomething() { echo 'World'; } } class MyHelloWorld { use Hello, World { Hello::saySomething insteadof World; } } $o = new MyHelloWorld(); $o->saySomething(); ?> --EXPECTF-- Hello 


, : --TEST-- , --FILE-- , --EXPECTF-- тАФ , .


Zend PHP, ( , ). zend , - , jphp zend -.

Dalvik


Dalvik JVM, , . JPHP JVM Dalvik. , Google JVM Dalvik . Ruboto JRuby, тАФ .

, JPHP . 1.0 , , .

рдЖрдЧреЗ рдХрд╣рд╛рдБ рдЬрд╛рдирд╛ рд╣реИ?


WEB
. JPHP web- php, Node.js, Ruby . hot-reloading .

JPHP , . php . Phalcon, - , . JPHP , , php, ++. Java , ++.

GUI
, .. . . JPHP gui , , Swing, JavaFX, HTML5 CSS3.

рдПрдВрдбреНрд░реЙрдпрдб
, . JPHP ARM Oracle VM, Raspberry Pi.

рдирд┐рд╖реНрдХрд░реНрд╖


PHP , =). , , , . PHP - , - .

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

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


All Articles