Sinflar

PHP obyektga asoslangan dasturlash tili bo'lib, har qanday dastur yoki ilovani ishlab chiqishda obyektga asoslangan dasturlash paradigmiga amal qilib, sinflar va obyektlarni yaratish imkonini beradi.

Sinf - mahalliy(lokal) o'zgaruvchilar va mahalliy(lokal) metodlarni o'z ichiga olgan foydalanuvchi tomonidan belgilangan ma'lumotlar turi(data type).

Obyekt - klassda belgilangan lokal metodlarni chaqirishimiz mumkin bo'lgan va qiymatlari belgilangan lokal o'zgaruvchilarni saqlaydigan klass(class) ekzamplyari.

Ushbu darsda biz PHPda qanday qilib klassni belgilashni va uning obyektlarini qanday yaratishni bilib olamiz.


Class(sinf) ni belgilash

PHP da klass belgilashda, xuddi o'zgaruvchilar kabi klass nomini berishimiz kerak va bu yerda klassimizning nomini berishda amal qilinadigan qoidalar ham bor, ular:
Klass nomi,

  • alifbo harflaridan iborat bo'lishi kerak.
  • PHP kalit so'zlardan iborat bo'lmaslik kerak.
  • Bo'shliqlardan iborat bo'lmaslik kerak.

Hozir biz klassni nomlashga doir qoidalarni bilib oldik, keling endi Person nomli sodda klassimizni yaratamiz.


Class ni belgilash sintaksisi

PHP da klassni yaratish sintaksis juda sodda, buning uchun biz klassimiz nomidan oldin class kalit so'zini yozamiz va klass uchun yozilgan kodlarni {} qavslari orqali o'rab olamiz, ya'ni:

image

Bu majburiy bo'lmasada, ammo class nomini php fayl nomi sifatida foydalanish yaxshi mashg'ulat. Shuningdek, PHPda bitta satrda bir nechta classlarni belgilash imkoni bor ammo buni maslahat bermagan bo'lardim.

Endi kodimizni yuqoridagidek Person.php faylimizga saqlab olamiz.


Shaxsimizning(Person) ismini saqlash uchun klassimizga o'zgaruvchi qo'shamiz. Klass ichiga qo'shilgan o'zgaruvchi - xossa deb ataladi.

image

var - klass ichidagi o'zgaruvchi/xossani belgilash uchun kalit so'z va $ism o'zgaruvchining nomi.

Endi navbat, klassimizga metod/funksiya qo'shishga keldi. Funksiyalar, klass ichida belgilanganda metod deb ataladi.

Klass ichidagi metodlar - klass o'zgaruvchilari(xossalari) ustida operatsiyalarni amalga oshirish yoki klass uchun boshqa operatsiyani bajarish uchun belgilanadi. Masalan, o'zgaruvchilarning qiymatlarini kiritish yoki ma'lumotlarni bazaga saqlash kabilar bo'lishi mumkin.

Klass o'zgaruvchisining qiymatini olish va klass o'zgaruvchisiga qiymat kiritish uchun metodlarni belgilaganimizda, bu metodlar Getter va Setter funksiyalar deb ataladi.

Ular keng tartibda get_UZGARUVCHI-NOMI() va set_UZGARUVCHI-NOMI() deb nomalanadi.

Endi, $ism o'zgaruvchisiga get_ism() va set_ism() funksiyalarini qo'shamiz.

Getter va Setter funksiyalari haqida ko'proq ma'lumotlar bilan, klass obyektlarini yaratishni o'rganganimizda bilib olasiz.


Class'ni hech qanday o'zgaruvchisiz belgilashimiz mumkinmi?

Ha, sodda klasslar o'zgaruvchi talab qilmaydi. Oddiygina, uning ichida metodlar mavjud bo'ladi.

image

Yuqorida klass uchun, barcha obyektlar o'zgaruvchi yo'qligi sababli o'xshash.

Agar bizda klassimizda o'zgaruvchilar bo'lsa, biz o'sha klassning bir nechta turli xil qiymatdagi obyektlarni kiritishimiz mumkin bo'lar edi.


Qisqacha ma'lumot:

  • class - dasturchi tomonidan kiritilgan ma'lumot turi bo'lib u lokal ma'lumotlar bilan birga lokal funksiyalarni ham o'z ichiga oladi. Siz klassni bir turdagi obyektni bir qancha namunalarini qilish uchun ekzamplyar sifatida taassavur qilishingiz mumkin.
  • object - klass tomonidan belgilangan ma'lumot strukturasining individual ekzamplyari.