บทช่วยสอนPHP

PHP HOME แนะนำ PHP การติดตั้ง PHP PHP ไวยากรณ์ ความคิดเห็น PHP ตัวแปร PHP PHP Echo / พิมพ์ ประเภทข้อมูล PHP PHP Strings หมายเลข PHP PHP คณิตศาสตร์ ค่าคงที่ PHP ตัวดำเนินการ PHP PHP If...Else...Elseif PHP Switch PHP Loops ฟังก์ชัน PHP PHP Arrays PHP Superglobals PHP RegEx

แบบฟอร์มPHP

การจัดการแบบฟอร์ม PHP การตรวจสอบแบบฟอร์ม PHP ต้องใช้แบบฟอร์ม PHP URL แบบฟอร์ม PHP/อีเมล แบบฟอร์ม PHP เสร็จสมบูรณ์

PHPขั้นสูง

วันที่และเวลา PHP รวม PHP การจัดการไฟล์ PHP ไฟล์ PHP เปิด/อ่าน สร้าง/เขียนไฟล์ PHP อัพโหลดไฟล์ PHP คุกกี้ PHP PHP Sessions ตัวกรอง PHP ตัวกรอง PHP ขั้นสูง ฟังก์ชันเรียกกลับของ PHP PHP JSON ข้อยกเว้น PHP

PHP OOP

PHP OOP คืออะไร คลาส PHP/วัตถุ ตัวสร้าง PHP PHP Destructor PHP Access Modifiers PHP Inheritance ค่าคงที่ PHP PHP Abstract Classes อินเทอร์เฟซ PHP PHP ลักษณะ PHP Static Methods PHP คุณสมบัติคงที่ PHP เนมสเปซ PHP Iterables

ฐานข้อมูลMySQL

ฐานข้อมูล MySQL MySQL Connect MySQL สร้าง DB MySQL สร้างตาราง MySQL แทรกข้อมูล MySQL รับ ID ล่าสุด MySQL แทรกหลายรายการ MySQL ที่เตรียมไว้ MySQL Select Data MySQL Where MySQL สั่งซื้อโดย MySQL ลบข้อมูล ข้อมูลอัพเดต MySQL MySQL Limit Data

PHP XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - รับ PHP XML Expat PHP XML DOM

PHP - AJAX

บทนำ AJAX AJAX PHP ฐานข้อมูล AJAX AJAX XML AJAX ค้นหาสด AJAX โพล

ตัวอย่างPHP

ตัวอย่าง PHP PHP คอมไพเลอร์ แบบทดสอบ PHP แบบฝึกหัด PHP ใบรับรอง PHP

ข้อมูลอ้างอิงPHP

ภาพรวม PHP PHP Array ปฏิทิน PHP PHP วันที่ ไดเรกทอรี PHP ข้อผิดพลาด PHP ข้อยกเว้น PHP ระบบไฟล์ PHP ตัวกรอง PHP PHP FTP PHP JSON คีย์เวิร์ด PHP PHP Libxml PHP Mail PHP คณิตศาสตร์ PHP เบ็ดเตล็ด PHP MySQLi เครือข่าย PHP การควบคุมเอาต์พุต PHP PHP RegEx PHP SimpleXML PHP Stream PHP String การจัดการตัวแปร PHP PHP XML Parser PHP Zip เขตเวลา PHP

PHP OOP - อินเทอร์เฟซ


PHP - อินเทอร์เฟซคืออะไร

อินเทอร์เฟซช่วยให้คุณสามารถระบุวิธีการที่คลาสควรใช้

อินเทอร์เฟซทำให้ง่ายต่อการใช้งานหลากหลายคลาสในลักษณะเดียวกัน เมื่ออย่างน้อยหนึ่งคลาสใช้อินเทอร์เฟซเดียวกัน จะเรียกว่า "polymorphism"

อินเทอร์เฟซถูกประกาศด้วยinterfaceคำสำคัญ:

ไวยากรณ์

<?php
interface InterfaceName {
  public function someMethod1();
  public function someMethod2($name, $color);
  public function someMethod3() : string;
}
?>

PHP - ส่วนต่อประสานกับคลาสนามธรรม

อินเทอร์เฟซคล้ายกับคลาสนามธรรม ความแตกต่างระหว่างอินเทอร์เฟซและคลาสนามธรรมคือ:

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

PHP - การใช้อินเทอร์เฟซ

ในการใช้งานอินเทอร์เฟซ คลาสต้องใช้ implementsคีย์เวิร์ด

คลาสที่ใช้อินเทอร์เฟซต้องใช้ เมธอด ทั้งหมดของอินเทอร์เฟซ

ตัวอย่าง

<?php
interface Animal {
  public function makeSound();
}

class Cat implements Animal {
  public function makeSound() {
    echo "Meow";
  }
}

$animal = new Cat();
$animal->makeSound();
?>

จากตัวอย่างข้างต้น สมมุติว่าเราต้องการเขียนซอฟต์แวร์ที่จัดการกลุ่มของสัตว์ มีการกระทำที่สัตว์ทั้งหมดสามารถทำได้ แต่สัตว์แต่ละตัวทำในแบบของตัวเอง

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

ตัวอย่าง

<?php
// Interface definition
interface Animal {
  public function makeSound();
}

// Class definitions
class Cat implements Animal {
  public function makeSound() {
    echo " Meow ";
  }
}

class Dog implements Animal {
  public function makeSound() {
    echo " Bark ";
  }
}

class Mouse implements Animal {
  public function makeSound() {
    echo " Squeak ";
  }
}

// Create a list of animals
$cat = new Cat();
$dog = new Dog();
$mouse = new Mouse();
$animals = array($cat, $dog, $mouse);

// Tell the animals to make a sound
foreach($animals as $animal) {
  $animal->makeSound();
}
?>

ตัวอย่างที่อธิบาย

Cat, Dog and Mouse เป็นคลาสทั้งหมดที่ใช้อินเทอร์เฟซ Animal ซึ่งหมายความว่าทุกคนสามารถสร้างเสียงโดยใช้makeSound()วิธีการ ด้วยเหตุนี้ เราจึงสามารถวนรอบสัตว์ทั้งหมดและบอกให้พวกมันทำเสียง แม้ว่าเราจะไม่รู้ว่าสัตว์แต่ละชนิดเป็นประเภทใด

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