PHP da OOP - Sinf va ob'ektlarga kirish

O

Oldingi darslarda biz PHP skriptlarini yozish uchun funksiyalardan foydalanganmiz. Shuning uchun u tizimli dasturlash deb ataladi. Biroq, dastur yoki loyiha hajmi oshgani sayin tizimli dasturlash yanada chalkash va tushunish va boshqarish qiyin bo'ladi. Biz endi ob'ektga yo'naltirilgan dasturlashni boshlaymiz - PHP da OOP bu sinflar va ob'ektlardan foydalanadi.

Ob'ektga yo'naltirilgan dasturlash nima - PHP da OOP

OOP - ob'ektga yo'naltirilgan dasturlashning qisqartmasi. Nomidan ko'rinib turibdiki, unda ma'lumotlar va xususiyatlarni saqlaydigan ob'ektlar mavjud.

Bu PHPda OOP yoki PHPda tizimli dasturlashni tanlash talablariga bog'liq. Biroq, aksariyat hollarda, OOP tizimli dasturlashdan ustundir. PHP da OOP ning foydaliroq bo'lishining sabablari quyida keltirilgan.

  • OOPni tushunish osonroq va bajarilishi tezroq.
  • Kod osongina kayfiyatni o'zgartirishi mumkin bo'lgan tuzilishga aylanadi.
  • PHP da OOP dan foydalanib, biz kodni takrorlashdan qochishimiz mumkin.
  • Standart OOP tamoyillariga rioya qilgan holda biz ham kichik, ham katta hajmdagi ilovalarni ishlab chiqishimiz mumkin. Ushbu standart xususiyatlarni keyingi darslarda bilib olamiz.

OOPda sinf nima?

Sinf PHPda OOP ning asosiy boshlang'ich nuqtasidir. Sinfda atributlar, funktsiyalar va spetsifikatsiyalar mavjud. Masalan, sinf nima haqida ekanligini tasavvur qilish uchun quyidagi misollarga qarang.

  • Uy hayvonlari sinfi
  • Avtomobillar sinfi

Yuqoridagi sinflarda bo'lgani kabi, biz hayvonlarni Hayvonlar sinfiga va avtomobillarni Avtomobil sinfiga ajratdik. Ushbu sinf atributlar va funktsiyalarni o'z ichiga oladi, biz ularni keyinroq maqolada ko'rib chiqamiz.

OOPdagi ob'ektlar nima?

Ob'ektlar - bu sinfning o'ziga xos xususiyatlarini saqlaydigan yoki aks ettiruvchi misollari. Sinfning bir xil xususiyatlarini aks ettiruvchi bir nechta ob'ektlari bo'lishi mumkin. Biroq, har bir ob'ekt o'z sinfining xususiyatlari uchun turli qiymatlarga ega bo'lishi mumkin.

Uy hayvonlari va avtomobillar sinfining yuqoridagi misolida biz quyidagi ob'ektlarga ega bo'lishimiz mumkin.

  • Mushuk va itni o'z ichiga olgan uy hayvonlari sinfining ob'ekti.
  • Xuddi shunday, Honda va Toyota o'z ichiga olgan avtomobillar sinfining ob'ekti.

Eslatma: Ob'ekt o'z sinfining barcha xususiyatlarini meros qilib oladi.

PHP OOP da sinfni qanday yaratish mumkin?

Class kalit so'zi PHP da sinfni e'lon qilish uchun ishlatiladi. Sinf nomi ushbu kalit so'zdan keyin keladi va sinf nomini bosh harf bilan boshlash tavsiya etiladi. Masalan, biz PHP da uy hayvonlari sinfini yaratamiz.

<?php
class Pets {
  // code
}
?>

Endi bizda hech qanday funktsiya, atributlar yoki kodlarni o'z ichiga olmaydigan uy hayvonlari sinfi mavjud. Keyingi misolda biz PHP sinfini ba'zi funktsiyalar bilan to'ldiramiz. Aytaylik, bizda uy hayvonining nomi va uning rangi bor.

<?php
class Pets {

  // Properties

  public $nick_name;
  public $color;

  // functions
  function set_nick_name($name) {
    $this->nick_name = $name;
  }

  function get_nick_name() {
    return $this->nick_name;
  }
}
?>

Eslatma: Sinfdagi o'zgaruvchilar atributlar va funksiyalar sifatida ham tanilgan.

PHP da sinf ob'ektini qanday yaratish mumkin?

PHP da yangi ob'ekt yaratish uchun foydalaning yangi kalit so'zni kiriting va kalit so'zdan keyin ob'ekt nomini yozing. Quyidagi misolga qarang, unda biz Pets sinfining ikkita ob'ektini yaratamiz.

<?php
class Pets {
  // Properties
  public $nick_name;
  public $color;

  // Methods
  function set_name($name) {
    $this->nick_name = $name;
  }
  function get_name() {
    return $this->nick_name;
  }
}

$cat = new Pets();
$dog = new Pets();

$cat->set_name('yii');
$dog->set_name('hop');

echo $cat->get_name();
echo "<br>";
echo $dog->get_name();
?>
  • Yuqoridagi misolda biz uy hayvonining nomini belgilash va olishning ikkita usulini o'z ichiga olamiz.
  • Biz foydalanamiz yangi ikkita ob'ekt yaratish uchun kalit so'z $cat va $dog.
  • Ikkala ob'ekt yordamida set_name usulini chaqiring.
  • Endi ikkala ob'ekt ham o'ziga xos taxallusga ega.

Endi yuqoridagi misolda biz uy hayvonining rang xususiyatini o'rnatadigan va oladigan yana ikkita funktsiyani qo'shamiz.



<?php
class Pets {
  // Properties
  public $nick_name;
  public $color;

  // Methods
  function set_name($name) {
    $this->nick_name = $name;
  }
  function get_name() {
    return $this->nick_name;
  }
  function set_color($color) {
    $this->color = $color;
  }
  function get_color() {
    return $this->color;
  }
}

$cat = new Pets();
$dog = new Pets();

$cat->set_name('yii');
$dog->set_name('hop');

$cat->set_color('brown');
$dog->set_color('white');

echo $cat->get_name();
echo $cat->get_color();

echo $dog->get_name();
echo $dog->get_color();
?>

  • Yuqoridagi misolda biz uy hayvonining rangini o'rnatish va olish uchun ikkita qo'shimcha usulni o'z ichiga olamiz.
  • Biz foydalanamiz yangi ikkita yangi ob'ekt yaratish uchun kalit so'z $cat va $dog.
  • set_name ga qo'ng'iroq qiling va ikkala ob'ekt uchun rang usullarini o'rnating.
  • Endi ikkala ob'ekt ham o'ziga xos taxallus va rangga ega.
  • Ikkala ob'ekt yordamida get usulini chaqiramiz. U ikkala uy hayvonlarining nomi va rangini chiqaradi.

PHP OOP da $this kalit so'zi nima?

$bu kalit so'z PHP OOP dagi joriy ob'ektga ishora qiladi. Kalit so'z joriy ob'ekt qiymatini belgilash yoki qiymatni olish uchun ishlatilishi mumkin.

ning qiymatini yangilashning ikkita usuli mavjud sinf atributlari.

  1. $tush kalit so'zidan foydalanish
  2. Ob'ekt yordamida qiymatni to'g'ridan-to'g'ri o'rnating.

Biz foydalanadigan quyidagi misolga qarang $ushbu kalit so'z uy hayvonlari rangi qiymatini o'rnatish uchun funktsiya ichida.



<?php
class Pets {

  // Properties

  public $nick_name;
  public $color;

  // functions
  function set_nick_name($name) {
    $this->nick_name = $name;
  }

  function get_nick_name() {
    return $this->nick_name;
  }
}
?>

Yuqoridagi misolda nick_name ushbu funktsiyani chaqiruvchi ob'ekt uchun o'rnatilishiga ishonch hosil qiling. Keyingi misolda biz $this kalit so'zidan foydalanmasdan taxallusni o'rnatamiz.

<?php
class Pets {
  public $color;
}
$cat = new Pet();
$cat->name = "brown";

echo $cat->color;
?>

PHP instnceOf funksiyasi

PHP instanceOf funktsiyasidan u tegishli bo'lgan ob'ekt sinfini tekshirishingiz mumkin.

<?php
$dog = new Pet();
var_dump($dog instanceof Pet);
?>

Rasmiy PHP 8 sinflari va ob'ektlari maqolasiga murojaat qilishingiz mumkin Bu yerga.

Fikr qo'shish

Repetitor tarmog'i

PHP tilini A dan Z gacha o'rganing