PHP What is OOP
OOP рдХреЛ рдЕрд░реНрде Object-Oriented Programming рд╣реЛред
Procedural programming рднрдиреЗрдХреЛ procedures рд╡рд╛ methods рд▓реЗрдЦреНрдиреБ рд╣реЛ рдЬрд╕рд▓реЗ data рдорд╛ operations рдЧрд░реНрдЫ, рдЬрдмрдХрд┐ object-oriented programming рднрдиреЗрдХреЛ objects рдмрдирд╛рдЙрдиреБ рд╣реЛ рдЬрд╕рдорд╛ data рд░ methods рджреБрдмреИ рд╣реБрдиреНрдЫрдиреНред
Object-oriented programming рдХрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдЧрдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ (procedural programming) рднрдиреНрджрд╛ рдзреЗрд░реИ рдлрд╛рдЗрджрд╛рд╣рд░реВ рдЫрдиреН:
- OOP рдЫрд┐рдЯреЛ рд░ execute рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫред
- OOP рд▓реЗ programs рдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдкрд╖реНрдЯ structure рдкреНрд░рджрд╛рди рдЧрд░реНрдЫред
- OOP рд▓реЗ рдХреЛрдбрд▓рд╛рдИ "Don't Repeat Yourself" (DRY) рд░рд╛рдЦреНрди рдорджреНрджрдд рдЧрд░реНрдЫ, рд░ рдХреЛрдбрд▓рд╛рдИ maintain, modify рд░ debug рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫред
- OOP рд▓реЗ рдХрдо рдХреЛрдб рд░ рдЫреЛрдЯреЛ development time рдорд╛ full reusable applications рдмрдирд╛рдЙрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред
Note: "Don't Repeat Yourself" (DRY) рд╕рд┐рджреНрдзрд╛рдиреНрдд рднрдиреЗрдХреЛ рдХреЛрдбрдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрдо рдЧрд░реНрдиреБ рд╣реЛред рддрдкрд╛рдИрдБрд▓реЗ рдХреЛрдбрдорд╛ рднрдПрдХрд╛ common рднрд╛рдЧрд╣рд░реВ (jastai data processing) рд▓рд╛рдИ рдирд┐рдХрд╛рд▓реЗрд░ рдПрдЙрдЯреИ рдард╛рдЙрдБрдорд╛ рд░рд╛рдЦреНрдиреБрдкрд░реНрдЫ рд░ рддреНрдпрд╕рд▓рд╛рдИ рджреЛрд╣реЛрд░реНрдпрд╛рдПрд░ рд▓реЗрдЦреНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рдпреЛрдЧ (reuse) рдЧрд░реНрдиреБрдкрд░реНрдЫред
OOP - Classes and Objects
Class рд░ objects, object-oriented programming рдХрд╛ рджреБрдИ рдореБрдЦреНрдп рдкрдХреНрд╖рд╣рд░реВ рд╣реБрдиреНред
Class рд░ object рдмрд┐рдЪрдХреЛ рдлрд░рдХ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реМрдВ:
- Class - Fruit
- Objects - Apple, Banana, Mango
рдЕрд░реНрдХреЛ рдЙрджрд╛рд╣рд░рдг:
- Class - Car
- Objects - Volvo, Audi, Toyota
рддрд╕рд░реНрде, class рднрдиреЗрдХреЛ objects рдХреЛ рд▓рд╛рдЧрд┐ template рд╣реЛ, рд░ object рднрдиреЗрдХреЛ class рдХреЛ instance рд╣реЛред
рдЬрдм individual objects рдмрдирд╛рдЗрдиреНрдЫ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ class рдмрд╛рдЯ рд╕рдмреИ properties рд░ behaviors (methods) рдХреЛ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдкрд╛рдЙрдБрдЫрдиреН (inherit рдЧрд░реНрдЫрдиреН), рддрд░ рдкреНрд░рддреНрдпреЗрдХ object рдХреЛ property values рдлрд░рдХ рд╣реБрди рд╕рдХреНрдЫред