การเขียน PHP แบบ OOP ตอนที่ 2
No CommentsApril 2, 2013 at 2:47 pmCategory:php | Uncategorized
การเขียน PHP แบบ OOP ตอนที่ 2
ในตอนที่แล้ว ภาษา PHP: การเขียนแบบ OOP ตอนที่ 1 เป็นเนื้อหาเกี่ยวกับการสร้าง class และ object เบื้องต้นในครั้งนี้จะพูดถึง การสร้าง method get กับ set
โดยเริ่มจากโค้ดจากตอนที่แล้วโดยเปลี่ยนโค้ดดังนี้
<?
class Student{
private $firstName;
private $lastName;
public function display()
{
$display = 'FistName: ' . $this->firstName;
$display .= '<br/>';
$display .= 'LastName: ' . $this->lastName;
return $display;
}
public function setFirstName($name)
{
$this->firstName = $name;
}
public function setLastName($name)
{
$this->lastName = $name;
}
public function getFirstName()
{
return $this->firstName;
}
public function getLastName()
{
return $this->lastName;
}
}
เมื่อลองรันไฟล์ index.php ที่ทำมาจากตอนก่อนก็จะได้ดังนี้
สังเกตว่าโค้ดใน Class Student มีการเปลี่ยน modifier จาก public เป็น private เพื่อไม่ให้ object ที่สร้างขึ้นไม่สามารถอ้างอิง member fistName และ lastName หรือเปลี่ยนแปลงค่าได้โดยตรงจึงทำการสร้าง method get และ set ขึ้นมาตามโค้ด
เมื่อลองแก้ไฟล์ index.php ตามโค้ดต่อไปนี้
<?php
require 'class.Student.inc';
echo '<h2>Test Class Student</h2>';
$student = new Student();
echo '<h2>Set Property Class Student</h2>';
$student->setFirstName('Thaicoding');
$student->setLastName('.Com');
echo '<pre>' . print_r($student) . '</pre><br/>';
echo '<h2>Function Display</h2>';
echo $student->display();
echo '<h2>Function get FirstName</h2>';
echo $student->getFirstName();
echo '<h2>Function get LastName</h2>';
echo $student->getLastName();
?>
เมื่อลองรันไฟล์ index.php ก็จะได้ดังรูป
สังเกตว่า method setFirstName กับ setLastName จะทำการกำหนดค่า member firstName และ lastName ตามค่าที่ส่งเข้าโดย object จะสามารถทำการเรียกใช้งานให้ดูตัวอย่างในไฟล์ index.php คือ $student->setFirstName(‘Thaicoding’);
ส่วน method get นั้นก็แค่ทำการ return ค่า member ที่ต้องการออกมาให้กับ object ที่เรียกใช้งาน ในการทำ method get set นั้นเพื่อป้องกันการเข้าถึง member ของ object ของ class โดยตรงหรือที่เรียกว่า Encapsulation เพื่อให้คนที่เอา class ไปใช้งานนั้นไม่ทำการอ้างอิงถึงจนทำให้เกิดความผิดพลาดของการทำงานของโปรแกรมเกิดขึ้น
ใน php นั้นจะมี magic method ของ _get กับ _set อยู่แต่ในเบื้องต้นนี้ผมเขียนบทความขั้นพื้นฐานก่อนแล้วค่อยหาโอกาสเขียนบทความในรายละเอียดต่อไป
Tags: get and set, php, การเขียนแบบ OOP, สอนเขียน php, หัดเขียน php, เขียน php



