PHP traitlar


ULASHISH

PHP - Xususiyatlar nima?

Xususiyatlar bir nechta classlarda ishlatilishi mumkin bo‘lgan usullarni e’lon qilish uchun ishlatiladi. Xususiyatlar bir necha usulda ishlatilishi mumkin bo‘lgan usullar va mavhum usullarga ega bo‘lishi mumkin classlar va usullar har qanday kirish modifikatoriga ega bo‘lishi mumkin (ommaviy, xususiy yoki himoyalangan).

Xususiyatlar turli classlarda bir nechta usullardan erkin foydalanish imkonini beradi va kodni qayta ishlatish mexanizmi hisoblanadi.


Xususiyatni aniqlang

Xususiyat trait kalit so‘zi bilan belgilanadi, so‘ngra belgining nomi:

trait TraitName {
  // some code...
}

Xususiyatdan foydalaning

Classda belgidan foydalanish uchun use kalit so‘zidan keyin belgi nomidan foydalaning:

class MyClass {
  use TraitName;
}

Quyidagi misolda biz xususiyatni aniqlaymiz: xabar1. Keyin biz class yaratamiz: Xush kelibsiz. Bu class belgidan foydalanadi va bu xususiyatdagi barcha usullar classda mavjud bo‘ladi:

Misol

<?php // Define a trait trait message1 {   public function msg1() {     echo "PHP OOP is fun! ";   } } // Use the trait in a class class Welcome {   use message1; } $obj = new Welcome(); $obj->msg1(); ?>
O‘zingiz sinab ko‘ring »

Maslahat: Agar boshqa classlar msg1() funksiyasidan foydalanishi kerak bo‘lsa, o‘sha classlarda message1 xususiyatidan foydalaning. Bu kodning takrorlanishini kamaytiradi, chunki bir xil usulni qayta-qayta e’lon qilishning hojati yo‘q.



PHP - Ikki class va bitta xususiyat

Quyidagi misolda biz bitta xususiyatni aniqlaymiz: xabar1. Bu xususiyat uchta umumiy usulni o‘z ichiga oladi. Keyin ikkita class yaratamiz: Welcome va Welcome2. Welcome va Welcome2 classlari xususiyatdan foydalanadi va xususiyatdagi barcha usullar ikkala classda ham mavjud bo‘ladi. Biroq, Welcome klassi xususiyatdagi usullardan faqat bittasini ishlatadi, Welcome2 esa xususiyatdagi uchta usuldan foydalanadi:

Misol

<?php trait message1 {   public function msg1() {     echo "PHP OOP is fun! ";   }   public function msg2() {     echo "Traits reduce code duplication! ";   }   public function msg3() {     echo "Hello World!";   } } class Welcome {   use message1; } class Welcome2 {   use message1; } $obj = new Welcome(); $obj->msg1(); echo "<br>"; $obj2 = new Welcome2(); $obj2->msg1(); $obj2->msg2(); $obj2->msg3(); ?>
O‘zingiz sinab ko‘ring »

PHP - Bir nechta xususiyatlardan foydalanish

Quyidagi misolda biz ikkita xususiyatni aniqlaymiz: xabar1 va xabar2. Keyin ikkita class yaratamiz: Welcome va Welcome2. Birinchi class (Xush kelibsiz) xabar1 xususiyatidan foydalanadi va ikkinchi class (Xush kelibsiz2) xabar1 va xabar2 belgilaridan foydalanadi (bir nechta belgilar vergul bilan ajratiladi):

Misol

<?php trait message1 {   public function msg1() {     echo "PHP OOP is fun! ";   } } trait message2 {   public function msg2() {     echo "Traits reduce code duplication!";   } } class Welcome {   use message1; } class Welcome2 {   use message1, message2; } $obj = new Welcome(); $obj->msg1(); echo "<br>"; $obj2 = new Welcome2(); $obj2->msg1(); $obj2->msg2(); ?>
O‘zingiz sinab ko‘ring »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!