อินเทอร์เฟซใน PHP | อินเทอร์เฟซ PHP OOPs
เผยแพร่แล้ว: 2021-03-03สารบัญ
บทนำ
PHP เป็นภาษาเชิงวัตถุ และอินเทอร์เฟซเป็นหนึ่งในคุณสมบัติหลักของภาษาโปรแกรมเชิงวัตถุ อินเทอร์เฟซช่วยให้ผู้เข้ารหัสสามารถประกาศฟังก์ชันที่มีคำจำกัดความที่แตกต่างกันในคลาสที่ใช้อินเทอร์เฟซนั้น อ่านเพื่อทำความเข้าใจ อินเทอร์เฟ ซ ใน PHP นอกจากนี้ ให้อ่าน ตัวอย่างอินเทอร์เฟซใน PHP ที่แชร์ในบทความเพื่อทำความเข้าใจมากขึ้น
อินเทอร์เฟซใน PHP
อินเทอร์เฟซเป็นคุณลักษณะในการเขียนโปรแกรมเชิงวัตถุที่อนุญาตให้สร้างฟังก์ชันโดยไม่ต้องดำเนินการ การดำเนินการจะต้องรวมอยู่ในชั้นเรียน ช่วยป้องกันความซับซ้อนของการกำหนดเมธอด เนื่องจากแต่ละคลาสที่สืบทอดอินเทอร์เฟซสามารถมีการใช้งานที่แตกต่างกันตามความต้องการ การใช้ อินเทอร์เฟซใน PHP นั้นคล้ายคลึงกับคลาส โดยมีความแตกต่างเพียงอย่างเดียวคือไม่มีการใช้งานในฟังก์ชันในอินเทอร์เฟซ และอินเทอร์เฟซไม่มีตัวแปร
คุณสมบัติของอินเทอร์เฟซใน PHP
- อินเทอร์เฟซไม่มีรหัส
- อินเทอร์เฟซมีการประกาศวิธีการที่มีหรือไม่มีอาร์กิวเมนต์ แต่ไม่ใช่คำจำกัดความ
- คลาสที่ใช้อินเทอร์เฟซควรมีคำจำกัดความของวิธีการทั้งหมดที่ประกาศในอินเทอร์เฟซ
- คลาสสามารถมีการใช้งานหลายอินเตอร์เฟส
- อินเทอร์เฟซไม่สามารถมีวิธีการที่ไม่เป็นนามธรรมได้
ไวยากรณ์ของอินเทอร์เฟซ
จำเป็นต้องประกาศอินเทอร์เฟซก่อนใช้งาน ไวยากรณ์ของอินเทอร์เฟซคล้ายกับของคลาส โดยมีความแตกต่างเพียงอย่างเดียวคือใช้คำหลักของอินเทอร์เฟซในตำแหน่งของคำหลักระดับในขณะที่ประกาศอินเทอร์เฟซ ด้านล่างนี้เป็นไวยากรณ์สำหรับการประกาศ อินเทอร์เฟซใน PHP :
<?php
//การประกาศ อินเทอร์เฟซใน PHP
อินเทอร์เฟซ <ชื่ออินเทอร์เฟซ>

{
//รหัส
}
?>
วิธีการที่ประกาศภายในอินเทอร์เฟซสามารถเข้าถึงได้โดยการสืบทอดอินเทอร์เฟซตามคลาส คลาสรับส่วน ต่อประสานใน PHP โดยใช้คำหลักที่ใช้ในขณะที่ประกาศคลาส
ด้านล่างนี้คือไวยากรณ์ในการใช้งาน อินเทอร์เฟซใน PHP :
<?php
//ประกาศคลาส
คลาส <ชื่อคลาส> ใช้ <ชื่ออินเทอร์เฟซ>
{
//รหัส
}
?>
ตัวอย่างอินเตอร์เฟสใน PHP
เพื่อให้เข้าใจการใช้งานอินเทอร์เฟซ ให้เรามาดูตัวอย่างด้านล่าง:
<?php
//ประกาศอินเตอร์เฟส
ตัวอย่างอินเตอร์เฟส_รูปร่าง
{
ฟังก์ชั่นสาธารณะ ShapeArea();
}
//คลาสที่สืบทอดอินเตอร์เฟส
Class Shape1 ใช้ Example_Shape
{
ฟังก์ชั่นสาธารณะ ShapeArea()
{
ก้อง 'พื้นที่ของวงกลม';
}
}
//คลาสที่สืบทอดอินเตอร์เฟส
Class Shape2 ใช้ Example_Shape
{
ฟังก์ชั่นสาธารณะ ShapeArea()
{
Echo 'พื้นที่ของจัตุรัส';
}
}
// คลาสโดยไม่ต้องใช้อินเทอร์เฟซ
คลาส Shape3
{
ฟังก์ชันสาธารณะ AreaCal()
{
Echo 'ไม่มีอินเทอร์เฟซ';
}
}
$Obj1 = Shape1 ใหม่; // วัตถุสำหรับ class1
$Obj2 = Shape2 ใหม่; // วัตถุสำหรับ class2

$obj3 = Shape3 ใหม่; // วัตถุสำหรับคลาส 3 ไม่ใช้อินเตอร์เฟส
เสียงสะท้อน $obj1->ShapeArea();
ก้อง '<br>';
เสียงสะท้อน $obj2->ShapeArea();
ก้อง '<br>';
เสียงสะท้อน $obj3->AreaCal();
?>
เอาท์พุต
พื้นที่วงกลม
พื้นที่สี่เหลี่ยม
ไม่มีอินเทอร์เฟซ
คำอธิบายของผลลัพธ์
คลาส Shape1 มีคำจำกัดความของฟังก์ชันที่ประกาศภายในอินเทอร์เฟซ Shape1 ใช้อินเทอร์เฟซ ดังนั้นจึงสามารถเข้าถึงฟังก์ชันภายในและพิมพ์ 'พื้นที่ของวงกลม' คำอธิบายที่คล้ายกันสำหรับคลาส Shape2 และเอาต์พุต 'พื้นที่ของสี่เหลี่ยมจัตุรัส' คลาส Shape3 ไม่ได้ใช้งานอินเทอร์เฟซและทำงานเหมือนคลาสปกติใน PHP
การใช้งานอินเทอร์เฟซหลายตัว
คลาสสามารถใช้อินเทอร์เฟซได้มากกว่าหนึ่งอินเทอร์เฟซ ในกรณีเช่นนี้ คลาสต้องมีคำจำกัดความของเมธอดทั้งหมดที่ประกาศในอินเทอร์เฟซทั้งหมดที่คลาสกำลังนำไปใช้ ด้านล่างนี้คือภาพประกอบของการใช้งานอินเทอร์เฟซมากกว่าหนึ่งตัว ใน PHP
<?php
// ประกาศอินเทอร์เฟซ
ตัวอย่างอินเทอร์เฟซ1
{
ฟังก์ชั่นสาธารณะ method1();
}
// ประกาศอินเทอร์เฟซอื่น
ตัวอย่างอินเทอร์เฟซ2
{
ฟังก์ชั่นสาธารณะ method2();
}
//คลาสที่ใช้สองอินเตอร์เฟสที่ประกาศไว้ด้านบน
คลาส class1 ใช้ example1, example2
{
// ความหมายของเมธอดของ interface1
วิธีการทำงานสาธารณะ1
{
ก้อง 'ภายใน interface1 method1';
}
//คำจำกัดความของวิธีการของอินเตอร์เฟส2
ฟังก์ชันสาธารณะ วิธี2
{
ก้อง 'ภายใน interface2 method2;
}
}
Obj1 = คลาสใหม่ 1;
Obj2 = class2 ใหม่;
Obj1->method1;
Obj2->method2;
?>
เอาท์พุต
ภายในอินเตอร์เฟส1เมธอด1

ภายใน interface2 method2
ข้อควรทราบบางประการเกี่ยวกับการปรับใช้อินเทอร์เฟซหลายตัว
- วิธีการทั้งหมดที่ประกาศในอินเทอร์เฟซควรเป็นแบบสาธารณะ
- ฟังก์ชันต้องไม่มีคีย์เวิร์ด abstract
- หากโปรแกรมเมอร์ลืมกำหนดฟังก์ชันอินเทอร์เฟซ รหัสจะเกิดข้อผิดพลาด
- อินเทอร์เฟซไม่สามารถมีตัวแปรได้
ชำระเงิน: แนวคิด OOPs ใน PHP
ความแตกต่างระหว่างอินเทอร์เฟซและคลาสนามธรรม
ด้านล่างนี้คือความแตกต่างบางประการระหว่างอินเทอร์เฟซและคลาสนามธรรม:
- อินเทอร์เฟซประกอบด้วยการประกาศเท่านั้น แต่คลาสนามธรรมมีทั้งการประกาศเมธอดและคำจำกัดความ
- เมธอดในอินเทอร์เฟซสามารถเป็นแบบสาธารณะได้เท่านั้น ในขณะที่เมธอดในคลาสนามธรรมสามารถประกาศเป็นสาธารณะ ส่วนตัว หรือป้องกันได้
- หนึ่งคลาสสามารถใช้อินเทอร์เฟซได้มากกว่าหนึ่งรายการ ในขณะที่คลาสหนึ่งสามารถขยายวิธีการนามธรรมได้เพียงวิธีเดียวเท่านั้น
บทสรุป
อินเทอร์ เฟ ซใน PHP เป็นคุณลักษณะที่ช่วยให้ผู้ใช้สามารถประกาศวิธีการสาธารณะโดยไม่มีคำจำกัดความ บทความนี้อธิบายข้อมูลทั้งหมดเกี่ยวกับอินเทอร์เฟซพร้อมไวยากรณ์และตัวอย่าง เราหวังว่าข้อมูลที่แบ่งปันในบทความนี้จะเป็นประโยชน์กับคุณในการทำความเข้าใจแนวคิด คุณสามารถเรียนรู้หัวข้อที่คล้ายกันตาม PHP ได้จากบล็อก upGrad เพื่อความเข้าใจอย่างลึกซึ้ง คุณสามารถลงทะเบียนสำหรับหลักสูตรการรับรองออนไลน์เกี่ยวกับ PHP ที่ upGrad upGrad มีหลักสูตรประกาศนียบัตรมากมายที่สามารถช่วยคุณในด้านอาชีพและการเรียนรู้
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการพัฒนาซอฟต์แวร์แบบฟูลสแตก โปรดดูประกาศนียบัตร PG ของ upGrad & IIIT-B ด้านการพัฒนาซอฟต์แวร์แบบครบวงจร ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง โครงการมากกว่า 9 โครงการ และ การมอบหมายงาน สถานะศิษย์เก่า IIIT-B โครงการหลักที่นำไปปฏิบัติจริง และความช่วยเหลือด้านงานกับบริษัทชั้นนำ