Hallo sahabat Dumenity berjumpa lagi dalam tutorial kursuswebdesign, pada tutorial kali ini kita akan belajar tentang Multiple Inheritance dan PHP Interface Constants. Seperti yang telah kita tahu, PHP hanya mendukung satu warisan saja. Tapi, dengan menggunakan properti ini untuk memperluas interface PHP, kita dapat mensimulasikan banyak warisan.interface memperluas dua interface, seperti kelas mewarisi dua kelas induk di mana banyak inheritances didukung. Sebagai contoh, dalam program berikut, UserInterface memperluas kedua interface yang diberi nama Iklan, Widget untuk mewarisi fungsi yang diumumkan bersama mereka.

interface Widget {
public function getPopularTags();
}
interface Advertisement {
public function getAdsTile();
}
interface UserInterface extends Widget, Advertisement{
public function setMenu($menu_array);
public function getContent($page); 
}

Jika ada kelas PHP yang mengimplementasikan interface Pengguna harus memiliki definisi untuk semua fungsi yang dideklarasikan di interface Pengguna dan juga di interface lain, yaitu Widget, Advertisement, itu meluas.

PHP Interface Constants

Di PHP, konstanta didefinisikan di dalam blok interface, dengan menggunakan kata kunci const. Misalnya, konstanta Interface PHP dapat didefinisikan sebagai berikut.

const MAX_LENGTH = "100";

Kita dapat mengakses konstanta interface dengan menggunakan nama interface, atau dengan menggunakan nama kelas, dan juga nama instance kelas, yang mengimplementasikan interface. Misalnya, jika kita mendefinisikan MAX_LENGTH untuk interface Pengguna contoh pertama kita, maka konstanta ini dapat diakses dengan menggunakan sejumlah cara berikut.

  • Usernterface :: MAX_LENGTH
  • WebApp :: MAX_LENGTH
  • Instance dari WebApp (jika ada).
  • $this :: MAX_LENGTH (dalam definisi kelas).

catatan:

  • Semua fungsi yang dideklarasikan di interface PHP harus ditentukan dengan pengubah publik agar memungkinkan visibilitasnya menentukannya untuk kelas yang mengimplementasikan interface ini
  • saya tidak dapat memperpanjang kelas dengan interface. Sebagai contoh,
    class-name extends interface-name<span id="mce_marker" data-mce-type="bookmark" data-mce-fragment="1">​</span>

    akan menyebabkan kesalahan, seperti,

    Fatal error: Class ... cannot extend from interface UserInterface in...

     

  • Demikian pula, kita tidak dapat mengimplementasikan interface ke interfacea lain, yang akan menyebabkan kesalahan T_IMPLEMENTS.

Oke itulah tadi pembahasan saya tentang Multiple Inheritance dan PHP Interface Constants, semoga dapat bermanfaat.