php interfeysi va mavhum sinf

PHPda abstrakt sinf nima?
PHPdagi xususiyatlar

In this extensive lesson, we will delve into the complexities of PHP’s interface functionality. From In this post, we’ll look at the differences and similarities between two crucial PHP concepts: interfaces vs abstract classes. We’ll look at the syntax and use cases for each, as well as the benefits and drawbacks of utilizing interfaces and abstract classes in your code. By the conclusion of this session, you’ll know when to use PHP interfaces and when to utilize abstract classes, as well as how to apply them in your programming projects.

OOPda interfeys nima?

  • Interfeys - bu faqat mavhum usullarni o'z ichiga olgan sinf.
  • Interfeys sinfidan foydalanib, biz sinf interfeysni kengaytiradigan qaysi usullarni amalga oshirishi kerakligini belgilashimiz mumkin.
  • Mavhum sinfdan farqli o'laroq, siz usullar bilan abstrakt yozishingiz shart emas, chunki interfeysda faqat mavhum usullar bo'lishi mumkin.
  • Interfeys kalit so'z interfeys sinfini e'lon qilish uchun ishlatiladi. PHP da interfeys sinfining quyidagi sintaksisini ko'rib chiqing.
<?php
interface InterfaceName {
  public function someMethod1();
  public function someMethod2($name, $color);
  public function someMethod3() : string;
}
?>

Mavhum sinflar va interfeyslar juda o'xshash bo'lsa-da, ular bir-biridan mantiqiy jihatdan farq qiladi.

PHPda interfeys va abstrakt sinflar o'rtasidagi farq

Interfeys klassiMavhum sinf
Xususiyatlarni o'z ichiga olmaydiXususiyatlarni o'z ichiga olishi mumkin
Barcha usullar mavhum bo'lib, usullar bilan bir qatorda mavhum kalit so'z ham talab qilinmaydi.Con ham mavhum, ham mavhum bo'lmagan usullarni o'z ichiga oladi. Abstrakt usulni e'lon qilish uchun mavhum kalit so'z kerak.
Sinf boshqa sinfdan meros olish bilan bir qatorda interfeysni ham amalga oshirishi mumkin. Bu bolalar sinfi bir vaqtning o'zida interfeysni amalga oshirishi mumkinligini anglatadi.Bolalar sinfi (boshqa sinfdan meros bo'lib qolgan) mavhum sinfni amalga oshira olmaydi.
Barcha usullar kirish modifikatorlariga nisbatan ommaviy bo'lishi kerak.Usullar ochiq yoki kirish modifikatorlariga nisbatan himoyalangan bo'lishi mumkin.
Interfeyslar va abstrakt sinflar

PHP da interfeysga misol

Interfeys kalit so'z PHP da interfeysni e'lon qilish uchun ishlatiladi. PHP da interfeysning quyidagi amalga oshirilishiga qarang.

<?php
interface Unit {
  public function standard_unit();
}

class Weight implements Unit {
  public function standard_unit() {
    echo "Kg";
  }
}

$weight= new Weight();
$weight->standard_unit();
?>
  • Yuqoridagi misolda. standart_unit usulini o'z ichiga olgan interfeys klassi Unit yaratamiz.
  • Keyin biz boshqa sinf yaratamiz vazn amalga oshiradigan birlik interfeysi va undagi standard_unit usulini belgilaydi.
  • Yuqoridagi misoldan biz interfeysdan foydalanadigan sinf o'z usulini bekor qilishi va uni o'ziga xos tarzda ishlatishi mumkinligini ko'rishimiz mumkin. Aytaylik, bizda boshqa sinf uzunligi bor, u standard_unit usulidan o'ziga xos tarzda foydalanishi mumkin.
  • Biz SI birliklariga ega bo'lgan barcha jismoniy miqdorlar uchun ishlaydigan mantiqni yozishimiz mumkin. Quyidagi misolga qarang.
<?php
// Interface definition
interface Unit {
  public function standard_unit();
}

// Class definitions
class Weight implements Unit {
  public function makeSound() {
    echo " kg";
  }
}

class Length implements Unit {
  public function standard_unit() {
    echo " meter";
  }
}

class Temperature implements Unit {
  public function standard_unit() {
    echo " celcius";
  }
}

// Create a list of Physical Quanitites
$weight = new Weight();
$length = new Length();
$temperature = new Temperature();
$quantities= array($weight, $length, $temperature);

// Tell the quantities to use its standard unit
foreach($quantities as $quantities) {
  $quantitiy->standard_unit();
}
?>
  • Yuqoridagi misolda biz oldingi misoldagi kabi sinflarni yaratamiz.
  • Og'irlik, uzunlik va harorat sinflari bir xil interfeysni amalga oshiradi va standart_birlik usulidan o'ziga xos tarzda foydalanishi mumkin. Shunday qilib, biz ushbu sinflar ob'ektlarining massivini tuzamiz va standart_birlik usulini sinflash uchun ularni birma-bir aylantiramiz.

Rasmiy PHP 8 interfeysi hujjatlariga havola.

PHPda abstrakt sinf nima?
PHPdagi xususiyatlar
en English
X
Top o'ting