PHP hanya mendukung pewarisan tunggal: kelas anak hanya dapat mewarisi dari satu orang tua tunggal.
Jadi, bagaimana jika sebuah kelas perlu mewarisi beberapa perilaku? Ciri-ciri OOP memecahkan masalah ini.
Traits digunakan untuk mendeklarasikan metode yang dapat digunakan di banyak kelas. Sifat dapat memiliki metode dan metode abstrak yang dapat digunakan di banyak kelas dan metode dapat memiliki pengubah akses apa pun (public, private atau protected).
Sifat dideklarasikan dengan kata kunci traits
:
Sintaks
<?php trait TraitName { // some code... } ?>
Untuk menggunakan sifat di kelas, gunakan kata kunci use
:
Sintaks
<?php class MyClass { use TraitName; } ?>
Mari kita lihat contohnya:
Contoh :
<?php trait message1 { public function msg1() { echo "OOP Menyenangkan! "; } } class Welcome { use message1; } $obj = new Welcome(); $obj->msg1(); ?> /*Output OOP Menyenangkan! */
Penjelasan Kode
Di sini, kita mendeklarasikan satu ciri: message1. Kemudian, kita buat kelas: Welcome. Kelas menggunakan traits tersebut dan semua metode dalam sifat tersebut akan tersedia di kelas.
Jika kelas lain perlu menggunakan fungsi msg1(), cukup gunakan sifat message1 di kelas tersebut. Hal ini mengurangi duplikasi kode, karena tidak perlu mendeklarasikan ulang metode yang sama berulang kali.
Mari kita lihat contoh lain:
Contoh :
<?php trait message1 { public function msg1() { echo "OOP Menyenangkan! "; } } trait message2 { public function msg2() { echo "OOP mengurangi duplikasi kode!"; } } class Welcome { use message1; } class Welcome2 { use message1, message2; } $obj = new Welcome(); $obj->msg1(); echo "<br>"; $obj2 = new Welcome2(); $obj2->msg1(); $obj2->msg2(); ?> /*Output OOP Menyenangkan! OOP Menyenangkan! OOP mengurangi duplikasi kode! */
Penjelasan Kode
Di sini, kita akan mendeklarasikan dua ciri: pesan1 dan pesan2. Kemudian, kami membuat dua kelas: Welcome dan Welcome2. Kelas pertama (Welcome) menggunakan ciri message1 dan kelas kedua (Welcome2) menggunakan ciri message1 dan message2 (beberapa ciri dipisahkan dengan koma).