บทช่วยสอน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 - ลักษณะคืออะไร?

PHP รองรับการสืบทอดเดียวเท่านั้น: คลาสย่อยสามารถสืบทอดจากพาเรนต์เดียวเท่านั้น

แล้วถ้าคลาสต้องการสืบทอดพฤติกรรมหลายอย่างล่ะ? ลักษณะ OOP ช่วยแก้ปัญหานี้ได้

ลักษณะที่ใช้ในการประกาศวิธีการที่สามารถใช้ได้ในหลายคลาส ลักษณะสามารถมีเมธอดและเมธอดนามธรรมที่สามารถใช้ได้ในหลายคลาส และเมธอดสามารถมีตัวแก้ไขการเข้าถึงใดๆ (สาธารณะ ส่วนตัว หรือที่ได้รับการป้องกัน)

ลักษณะถูกประกาศด้วยtrait คำสำคัญ:

ไวยากรณ์

<?php
trait TraitName {
  // some code...
}
?>

หากต้องการใช้คุณลักษณะในชั้นเรียน ให้ใช้ use คีย์เวิร์ด:

ไวยากรณ์

<?php
class MyClass {
  use TraitName;
}
?>

ลองดูตัวอย่าง:

ตัวอย่าง

<?php
trait message1 {
public function msg1() {
    echo "OOP is fun! ";
  }
}

class Welcome {
  use message1;
}

$obj = new Welcome();
$obj->msg1();
?>

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

ในที่นี้ เราประกาศคุณลักษณะหนึ่งอย่าง: ข้อความ1 จากนั้น เราสร้างคลาส: ยินดีต้อนรับ ชั้นเรียนใช้คุณลักษณะนี้ และวิธีการทั้งหมดในคุณลักษณะนี้จะพร้อมใช้งานในชั้นเรียน

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



PHP - การใช้หลายลักษณะ

ลองดูตัวอย่างอื่น:

ตัวอย่าง

<?php
trait message1 {
  public function msg1() {
    echo "OOP is fun! ";
  }
}

trait message2 {
  public function msg2() {
    echo "OOP reduces code duplication!";
  }
}

class Welcome {
  use message1;
}

class Welcome2 {
  use message1, message2;
}

$obj = new Welcome();
$obj->msg1();
echo "<br>";

$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>

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

ในที่นี้ เราประกาศคุณสมบัติสองประการ: ข้อความ1 และข้อความ2 จากนั้น เราสร้างสองคลาส: Welcome และ Welcome2 คลาสแรก (ยินดีต้อนรับ) ใช้คุณสมบัติ message1 และคลาสที่สอง (Welcome2) ใช้ทั้งคุณสมบัติ message1 และ message2 (คุณสมบัติหลายรายการถูกคั่นด้วยเครื่องหมายจุลภาค)