ในโลกของการเขียนโปรแกรม หนึ่งในแนวคิดที่สำคัญและได้รับการนำไปใช้กันอย่างแพร่หลายคือ "การเขียนโปรแกรมแบบวัตถุ" (Object-Oriented Programming - OOP) ซึ่ง PHP เป็นหนึ่งในภาษาที่สนับสนุนการเขียนโค้ดแบบ OOP อย่างเต็มรูปแบบ ในบทความนี้ เราจะมาพูดถึงการใช้งาน function ที่เรียกว่า "setter" และ "getter" ที่เป็นส่วนสำคัญของแนวคิด OOP และดูตัวอย่างโค้ดในภาษา PHP พร้อมกับยกตัวอย่างการนำไปใช้ในโลกจริงด้วยนะครับ!
ใน OOP, getter และ setter เป็น methods ที่ใช้สำหรับการเข้าถึง (get) และการตั้งค่า (set) ของ properties ใน object โดยเป้าหมายหลักคือการ encapsulate (หรือการปกปิดรายละเอียด) ของข้อมูลใน object นั้นๆ และสร้าง interface ที่มีความปลอดภัยยิ่งขึ้นสำหรับการเข้าถึงข้อมูลเหล่านั้น
ก่อนอื่นเราจะต้องสร้าง class ตามแบบฉบับของ OOP
class Student {
private $name;
private $age;
public function __construct($name, $age) {
$this->setName($name);
$this->setAge($age);
}
public function getName() {
return $this->name;
}
public function setName($name) {
if (is_string($name)) {
$this->name = $name;
}
}
public function getAge() {
return $this->age;
}
public function setAge($age) {
if (is_numeric($age) && $age > 0) {
$this->age = $age;
}
}
}
ในตัวอย่างนี้ เรากำหนด `name` และ `age` ให้เป็น private เพื่อป้องกันการเข้าถึงอย่างตรงจากนอก class และทำการสร้าง getter และ setter สำหรับทั้งสอง property เป็นมาตรการควบคุมการเข้าถึงข้อมูล
$student = new Student("Somchai", 20);
echo $student->getName(); // Output: Somchai
echo $student->getAge(); // Output: 20
$student->setName("Somsri");
$student->setAge(25);
echo $student->getName(); // Output: Somsri
echo $student->getAge(); // Output: 25
ในตัวอย่างนี้ เราสร้าง object `student` และใช้งาน getter และ setter ในการเรียกดูและปรับเปลี่ยนข้อมูล
ในบางครั้ง เราต้องการตรวจสอบข้อมูลก่อนที่จะปรับเปลี่ยน ซึ่งเราสามารถทำได้โดยการใส่ logic ใน setter เพื่อทำการ validate ข้อมูล
class User {
private $email;
public function setEmail($email) {
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$this->email = $email;
} else {
throw new InvalidArgumentException("Invalid email address");
}
}
public function getEmail() {
return $this->email;
}
}
$user = new User();
$user->setEmail("somchai@example.com");
echo $user->getEmail(); // Output: somchai@example.com
// พยายามตั้งค่า email ที่ไม่ถูกต้อง
$user->setEmail("not a real email"); // Throws an InvalidArgumentException
ในแอพพลิเคชัน E-commerce, เราอาจจำเป็นต้องสร้าง class `Product` ที่มี properties เช่น `price`, `stock`, และ `name`. การใช้ getter และ setter จะช่วยให้เราควบคุมการเข้าถึงและการปรับเปลี่ยนข้อมูลเหล่านี้ได้อย่างแม่นยำ พร้อมทั้งตรวจสอบความถูกต้องของข้อมูลก่อนที่ฐานข้อมูลจะถูกอัพเดท
การใช้งาน getter และ setter ใน PHP ทำให้เราสามารถเขียนโค้ดได้อย่างปลอดภัยและกำหนดนโยบายการเข้าถึงข้อมูลของเราได้ นอกจากนี้ยังช่วยให้รักษาความสามารถในการดูแลรักษาโค้ด (maintainability) และความยืดหยุ่น (flexibility) ในการพัฒนาแอพพลิเคชัน เรียนรู้การเขียนโปรแกรมแบบนี้ได้ที่ EPT ที่พร้อมที่จะนำคุณไปสู่ระดับการเขียนโปรแกรมที่มีความเป็นมืออาชีพครับ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM