ฝึกเขียน PHP แบบ OOP ต้องการเรียกใช้ trait ชื่อ Demo ที่เขียนไว้จาก class Example แต่พอรันแล้วไม่สำเร็จขึ้นข้อความ Error ว่า Fatal error: Example cannot use Demo - it is not a trait ปัญหานี้ต้องแก้ไขอย่างไร
<?php
class Demo {
public function hello() {
return "Hello World";
}
}
class Example {
use Demo;
}
$objExample = new Example();
echo $objExample->hello();
?>
วิธีแก้ไข
ปัญหาดังกล่าวเกิดจากไม่พบ trait ชื่อ Demo เพราะจากโค้ด Demo เป็น class ไม่ใช่ trait แนะนำให้เปลี่ยนจาก class Demo เป็น trait Demo เพื่อให้คำสั่ง use Demo สามารถทำงานได้ แก้ไขโค้ดได้ดังนี้
<?php
trait Demo {
public function hello() {
return "Hello World";
}
}
class Example {
use Demo;
}
$objExample = new Example();
echo $objExample->hello();
?>
ผลลัพธ์
Hello World