O’zgaruvchilarni initsiallashtirish Ba’zan ayrim sinf atributlariga ma’noni sinf ishtirokchisini tuzish bilanoq o’zlashtirish
kerak bo’ladi. Biz maqola sinfini tuzganimizda, sinf atributlari (xususiyatlari) ma’nolarini
o’zlashtirish uchun maxsus funktsiya make_article() dan foydalandik. Umuman olganda, biz
to’g’ri yo’l tutmadik, chunki “velosiped ixtirosi” bilan shug’ullandik. Sinf atributlarining
boshlang’ich ma’nolarini berish uchun maxsus ikkita standart usul mavjud. PHP4da ma’noni var
operatori yoki konstruktor funktsiyasi yordamida initsiallashtirish mumkin. var yordamida faqat
konstant ma’nolarni initsiallashtirish mumkin. Konstant bo’lmagan ma’nolarni berish uchun
ob’ekt sinfdan ajrab chiqqanda o’z-o’zidan ishga tushuvchi konstruktor funtsiyasidan
foydalaniladi. Konstruktor-funktsiya u ifodalangan butun sinfga mos keluvchi nomga ega bo’lishi
kerak.
Misol keltiramiz. Aytaylik, “maqola” ob’ektini tuzishda biz uning xususiyatlarini
quyidagicha belgilaylik: mualliflar – “Kamolov” qatoriga teng, nomlanish va qisqa mazmun -
$_POST global massivi elementlariga mos, maqola nashri – mazkur sanada. Unda sinfning
quyidagi ifodasi PHP4da batartib bo’lmaydi:
class Articles { // maqola sinfini tuzamiz
var $titleq $_POST["title"];
var $author = "Kamolov";
var $description = $_POST["description"];
var $published = date("Y-m-d");
// sinf atributi
// ma’nosini o’zlashtiruvchi usul
}
?>
Sinfning quyidagi ifodasi esa PHP4da keraklicha yo’sinda ishlaydi:
class Articles { // maqola sinfini tuzish
var $title;
var $author = "Kamolov";
var $description;
var $published;
// sinf atributi
// ma’nosini o’zlashtiruvchi usul
function Articles(){
$this->title = $_POST["title"];
$this->description = $_POST["description"];
$this ->published = date("Y-m-d");
}
}
?>
PHP3 va PHP4 da konstruktorlar har xil ishlashini hisobga olish kerak. Funktsiya PHP3
da, agar u sinfniki kabi nomga ega bo’lsa, konsrtuktorga aylanadi, PHP4 da esa – agar u
ifodalangan sinfniki kabi nomga ega bo’lsa shunday bo’ladi. Bir sinf boshqasini kengaytirganda
va xususiyatlarning va baza sinflar usullarining ergashishida usullar orasidagi farq ko’rinib turibdi.
Lekin biz bu haqda biroz keyinroq gapiramiz. PHP5da sinf konstruktori _construct deb nomlanadi.
Bundan tashqari, PHPda destruktorlar – ob’ektni yo’q qilishda o’z-o’zidan ishga tushuvchi
funktsiyalar paydo bo’ldi. PHP5 da funktsiya-destruktor destruct deb nomlanishi kerak bo’ladi.