⊗ppOpTrInr 77 of 107 menu

Trait dalam OOP dalam PHP

Seperti yang anda sudah tahu, dalam PHP tidak boleh mewarisi dari beberapa kelas sekaligus, hanya dari satu. Sebelum ini kita sudah mempelajari penyelesaian masalah ini: selain pewarisan, gunakan objek daripada satu kelas di dalam kelas lain.

Dalam PHP ada cara lain. Ia terdiri daripada penggunaan trait. Trait mewakili satu set sifat dan kaedah yang boleh disertakan dalam kelas lain. Dalam kes ini, sifat dan kaedah trait akan dianggap oleh kelas seperti miliknya sendiri.

Sintaks trait adalah sama seperti kelas, kecuali nama trait perlu disebutkan dengan menggunakan kata kunci trait.

Instance trait tidak boleh dibuat - trait hanya bertujuan untuk disambungkan kepada kelas lain. Sambungan itu sendiri dilakukan dengan perintah use, selepas itu disebutkan nama trait yang disambungkan, dipisahkan dengan ruang. Perintah ini ditulis di awal kelas.

Mari kita lihat penggunaan trait dalam contoh praktikal. Katakan kita mempunyai trait berikut Helper, mengandungi sifat persendirian name dan age, serta getter mereka:

<?php trait Helper { private $name; private $age; public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Katakan kita juga mempunyai kelas User berikut, di dalam konstruktornya sifat name dan age ditetapkan:

<?php class User { public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>

Sekarang mari kita tambahkan getter untuk sifat kelas User kita. Hanya jangan tuliskannya dalam kelas itu sendiri, tetapi sambungkan sahaja trait Helper, di mana kaedah-kaedah ini sudah dilaksanakan:

<?php class User { use Helper; // sambungkan trait public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>

Selepas menyambungkan trait, dalam kelas kita akan muncul kaedah dan sifat trait ini. Dalam kes ini kita akan merujuk kepada mereka seolah-olah kaedah dan sifat kelas itu sendiri:

<?php $user = new User('john', 30); echo $user->getName(); // akan memaparkan 'john' echo $user->getAge(); // akan memaparkan 30 ?>

Laksanakan kelas City dengan sifat name, age, population dan getter untuk mereka. Biarkan kelas kita untuk menyingkatkan kodnya menggunakan trait Helper yang sudah kita buat.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak