Konstruktor va destruktor
Klassning obyektini yaratganimizda, biz obyektning xossalarini uni ishlatmasdan oldin o'rnatib olishimiz kerak. Biz buni birinchi obyektni initsializatsiya va xossalari uchun qiymatlar kiritish orqali bajarolamiz,yoki agar o'zgaruvchi public bo'lsa -> operatorini ishlatgan holda yoki private o'zgaruvchilar uchun public setter metodlarini ishlatgan holda bajarishimiz mumkin.
Bitta qadamda klass obyektini initsializatsiya qilish va yaratish uchun, PHP da Constructor deb nomlanadigan metod mavjud. Obyektni yaratish mobaynida talab qilingan xossa qiymatlarini belgilash orqali obyektni qurishda Construct metodi ishlatiladi va mos ravishda obyektlarni buzish uchun Destructor metodi ishlatiladi.
Constructor va Destructor ni belgilashdagi sintaksisi
PHP dasturlash tilida, biz klassga konstruktor va destruktor ni belgilashda maxsus funksiyalar : __construct() va __destruct() ishlatishimiz mumkin.
Konstruktor o'ziga argument qabul qiladi ammo destruktor hech qanday argument qabul qilmaydi chunki destruktorning vazifasi obyekt ma'lumotlarini o'chirish.
Konstruktor
Keling, 2ta parametrli Person klassining namunasini misol sifatida ko'ramiz, bu qismda biz obyektni yaratish vaqtida klass xossalarini initsializtsiya qilish uchun konstruktorni belgilaymiz.
Bundan avvalroq biz o'zgaruvchilarga qiymat kiritishda -> operatoridan yoki public setter metodlarini ishlatayotgan edik, konstruktor metodda esa biz obyektni yaratish mobaynida o'zgaruvchilarga qiymatlarni belgilay olamiz.
Destruktor
O'z nomi bilan ham aytib turibdiki, bu metod obyekt o'chirilishida ishtirok etadi. Bu metod xotiradan chiqarib yuboradi. Umuman olganda, destruktor metodda fayllarni yopish, manbalarni tozalash kabi ishlarda ishlatolasiz.
Destruktor metod hech qanday argument qabul qilmaydi va o'chirladigan obyektdan oldin chaqiriladi.
Esda tuting: Agar siz klass nomi bilan bir xil funksiya klass nomini ko'rsangiz shuni bilingki u konstruktor vazifasini bajarmoqda. Klassning eski versiyalarida __construktor() metodi belgilanmagan shuning uchun klass nomi bilan bir xil nom ishlatilinadi xuddi Core Java ga o'xshab. Namuna: