⊗ppOpTrInr 77 of 107 menu

Traits dalam OOP di PHP

Seperti yang sudah Anda ketahui, dalam PHP tidak dapat mewarisi dari beberapa kelas sekaligus, hanya dari satu. Sebelumnya kita sudah mempelajari solusi untuk masalah ini: alih-alih pewarisan, gunakan objek dari satu kelas di dalam kelas lain.

Di PHP ada cara lain. Caranya terletak pada penggunaan traits. Sebuah trait merepresentasikan sekumpulan properti dan metode yang dapat disertakan ke dalam kelas lain. Dalam hal ini properti dan metode trait akan dianggap oleh kelas seolah-olah miliknya sendiri.

Sintaks trait sama dengan kelas, kecuali bahwa nama trait perlu dideklarasikan menggunakan kata kunci trait.

Instance trait tidak dapat dibuat - traits hanya dimaksudkan untuk disambungkan ke kelas lain. Penyambungan sendiri dilakukan dengan perintah use, setelah itu diikuti dengan nama trait yang disambungkan, dipisahkan oleh spasi. Perintah ini ditulis di awal kelas.

Mari kita lihat penerapan traits pada contoh praktis. Misalkan kita diberikan trait berikut Helper, yang berisi properti privat name dan age, serta getter-nya:

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

Misalkan kita juga memiliki kelas User berikut, di dalam konstruktornya properti name dan age diatur:

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

Sekarang mari kita tambahkan getter untuk properti kelas User kita. Hanya saja, jangan menuliskannya di dalam kelas itu sendiri, tetapi cukup sambungkan trait Helper, di mana metode-metode ini sudah diimplementasikan:

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

Setelah menyambungkan trait, di kelas kita akan muncul metode dan properti dari trait ini. Dalam hal ini kita akan mengaksesnya seolah-olah sebagai metode dan properti dari kelas itu sendiri:

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

Implementasikan kelas City dengan properti name, age, population dan getter untuknya. Misalkan kelas kita untuk menyingkat kodenya menggunakan trait Helper yang sudah kita buat.

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