PHP Traits

โดยปกติแล้ว PHP รับรองการสืบทอดแบบเดียวเท่านั้น (การสืบทอดคุณสมบัติและวิธีการแบบจากคลาสแม่เพียง 1 คลาส) ดังนั้น trait จึงมีบทบาทที่จะเข้ามาช่วยให้สามารถรับเมธอดหลากหลายมากยิ่งขึ้น 

คุณสมบัติของ traits

  • สร้างเมธอดที่สามารถใช้ได้ในหลายคลาส ทั้งเมธอดที่เป็นนามธรรมที่ และเมธอดทั่วไปที่มีการกำหนดการเข้าถึง

 

ไวยากรณ์

<?php
trait TraitName {
  // เขียนโค้ด
}

// เรียกใช้

class MyClass{
 use TraitName;
}

?>

 

การเรียกใช้งาน trait สามารถทำได้โดยใช้คีย์เวิร์ด use ตามด้วยชื่อของ trait ที่ต้องการดังตัวอย่างที่ 1 

 

ตัวอย่างที่ 1

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

class Welcome {
  use message1;
}

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

ไฟล์ที่ 1 exam_trait.php

 

ตัวอย่างที่ 2 

<?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();
?>

ไฟล์ที่ 2 exam_traitr2.php

 

หากคุณพบคำที่สะกดผิด เว้นวรรคไม่ถูกต้อง ฯ โปรดแจ้งให้เราทราบ โดยลากคลุม (highlight) ข้อความนั้น แล้วกด Ctrl + Enter

ไม่สามารถคัดลอกเนื้อหานี้

Spelling error report

The following text will be sent to our editors: