Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

Interface ใน PHP


Interface เป็นโครงสร้างสำคัญใน PHP OOP กำหนด public methods ที่คลาสต้อง implement โดยไม่ระบุรายละเอียดการทำงาน (Implementation) Interface ประกอบด้วย method names และ arguments เท่านั้น ไม่มี body คลาสที่ implement interface ต้อง implement ทุกเมธอดที่ interface กำหนด

ตัวอย่าง

<?php 
interface MyInterface { 
    public function getName(); 
    public function getAge(); 
} 
class MyClass implements MyInterface { 
    public function getName() { 
        echo "My name A".'<br>'; 
    } 
    public function getAge(){ 
        echo "My Age 12"; 
    } 
} 
$obj = new MyClass; 
$obj->getName(); 
$obj->getAge(); 
?>

ผลลัพธ์

My name A My Age 12

คำอธิบาย

ประกาศ interface MyInterface มี 2 เมธอด ไม่มี body คลาส MyClass implement และนำมาใช้ตามต้องการ

คุณสมบัติสำคัญของ Interface

  • เมธอดใน interface เป็น abstract methods (ไม่มี body)
  • ทุกเมธอดต้องมี visibility public
  • Interface ต่างจากคลาส: คลาสสืบทอดได้แค่ 1 คลาส แต่ implement interface ได้หลายตัว
  • ไม่สามารถมี property (ตัวแปร) อยู่ใน interface ได้

หมายเหตุ: Multiple Inheritance ผ่าน Interface

คลาสสามารถ implement หลาย interface ได้ ทำให้เกิด multiple inheritance แบบหนึ่ง

ตัวอย่าง

<?php 
interface a { public function printData(); } 
interface b { public function getData(); } 
interface c extends a, b { public function addData(); } 
class d implements c { 
    public function printData(){ echo "I am printing"; } 
    public function getData(){ echo "I am reading data"; } 
    public function addData(){ echo "I am adding"; } 
} 
$myobj = new d(); 
$myobj->printData(); 
$myobj->addData(); 
?>

ผลลัพธ์

I am printing I am adding

คำอธิบาย

Interface c extends a และ b คลาส d implement c เท่านั้น แต่ได้เมธอดจาก a, b, c ทั้งหมด นี่คือการทำ multiple inheritance ผ่าน interface