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

อธิบายอินเตอร์เฟสใน PHP


ในบทความนี้ เราจะหาวิธีใช้อินเทอร์เฟซ PHP ซึ่งเป็นหนึ่งในรูปแบบโครงสร้างที่สำคัญที่สุดในการเขียนโปรแกรมเชิงวัตถุ PHP

อินเทอร์เฟซช่วยให้เราสามารถสร้างโปรแกรม โดยระบุวิธีการสาธารณะที่คลาสต้องดำเนินการ โดยไม่รวมถึงความซับซ้อนและขั้นตอนของวิธีการนำวิธีการเฉพาะไปใช้ นี่หมายความว่าอินเทอร์เฟซสามารถกำหนดชื่อเมธอดและอาร์กิวเมนต์ได้ แต่ไม่ใช่เนื้อหาของเมธอด คลาสใดๆ ที่ใช้อินเทอร์เฟซต้องใช้วิธีการทั้งหมดที่กำหนดโดยอินเทอร์เฟซ

อินเทอร์เฟซมีลักษณะคล้ายคลึงกับคลาส อย่างไรก็ตาม เฉพาะคำสำคัญอินเทอร์เฟซแทนที่วลีคลาสในการประกาศ และไม่มีเมธอดใด ๆ ที่มีเนื้อหาที่กำหนดไว้

ตัวอย่าง

มาสร้างอินเทอร์เฟซและใช้งานด้วยตัวอย่างง่ายๆ กันเถอะ

<?php
   Interface MyInterface {
      public function getName();
      public function getAge();
   }
   class MyClass implements MyFirstInterface{
      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

คำอธิบาย:

ที่นี่เราได้ประกาศอินเทอร์เฟซ MyFirstInterface ด้วยสองวิธี getName และ getAge ภายในโดยไม่มีเนื้อหาใด ๆ จากนั้นคลาส MyClass จะใช้อินเทอร์เฟซนี้และใช้วิธีการที่มีอยู่ตามความต้องการ

มาเรียนรู้ลักษณะสำคัญของอินเทอร์เฟซกันเถอะ:

  • อินเทอร์เฟซประกอบด้วยวิธีที่ไม่มีเนื้อหา ซึ่งหมายความว่าวิธีอินเทอร์เฟซเป็นวิธีนามธรรม
  • ทุกเมธอดในอินเทอร์เฟซต้องมีขอบเขตการเปิดเผยต่อสาธารณะ
  • อินเทอร์เฟซไม่เหมือนกับคลาสเนื่องจากคลาสสามารถสืบทอดจากคลาสหนึ่งได้ แต่คลาสสามารถใช้อินเทอร์เฟซได้ตั้งแต่หนึ่งรายการขึ้นไป
  • ไม่มีตัวแปรอยู่ภายในอินเทอร์เฟซ

หมายเหตุ:

เราสามารถได้รับมรดกหลายรายการโดยใช้อินเทอร์เฟซ เนื่องจากคลาสสามารถใช้อินเทอร์เฟซได้มากกว่าหนึ่งอินเทอร์เฟซ แต่สามารถขยายได้เพียงคลาสเดียวเท่านั้น

ตัวอย่าง

มาทดสอบกันโดยใช้ตัวอย่างง่ายๆ

<?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 class d();
   $myobj->printData();
   $myobj->addData();
?>

ผลลัพธ์:

I am printing
I am adding

คำอธิบาย :

ในที่นี้เราได้ประกาศอินเทอร์เฟซ 3 แบบ ได้แก่ 'อินเทอร์เฟซ a',' อินเทอร์เฟซ b', 'อินเทอร์เฟซ c' ในกรณีนี้อินเทอร์เฟซ c ขยายอินเทอร์เฟซสองอินเทอร์เฟซก่อนหน้านี้ด้วย จากนั้นเราได้ประกาศคลาสที่ใช้เฉพาะอินเทอร์เฟซ c แต่เนื่องจากอินเทอร์เฟซ c ขยายสองอินเทอร์เฟซก่อนหน้า เมธอดทั้งหมดที่ประกาศใน 'อินเทอร์เฟซ a', 'อินเทอร์เฟซ b' และ 'อินเทอร์เฟซ c' จะพร้อมใช้งานในคลาส ง. นี่คือวิธีที่เราสามารถได้รับมรดกหลายอย่างโดยการใช้อินเทอร์เฟซ