ภาษา PHP: การเขียนแบบ OOP ตอนที่ 1

ภาษา PHP: การเขียนแบบ OOP ตอนที่ 1

ในสมัยนี้การเขียนโปรแกรมในรูปแบบ OOP นั้นมีประโยชน์มากและเป็นรูปแบบทั่วไปสำหรับการพัฒนาโปรแกรมในสมัยนี้ เพราะมันสามารถออกแบบมารองรับการทำงานที่สลับสับซ้อนแล้วอีกอย่างหนึ่งคือมันสามารถ reusable code ได้ทำให้การพัฒนาโค้ดได้เร็วขึ้น และในภาษา PHP นั้นก็สามารถรองรับการเขียนโค้ดในรูปแบบ OOP ได้แล้ว โดยวันนี้จะเป็นการเขียนบทความเกี่ยวกับการเขียน PHP ในรูปแบบ OOP เบื้องต้น โดยมีเนื้อหาในตอนที่ 1 ดังนี้

  • การสร้าง class
  • การสร้าง member , method
  • การสร้าง object

เอาละเรามาเริ่มกันเลยโดย ผมจะทำการสร้าง Class ที่เกี่ยวกับข้อมูลนักเรียนง่ายๆๆ ขึ้นมานั้นคือ Class Student โดยในตอนที่ 1 นี้จะมี member ใน class 2 ตัวคือ firstName กับ lastName และมี method 1 method คือ   display() โดยมีโค้ดดังนี้

[sourcecode language=”php”]

firstName;
$display .= ‘
‘;
$display .= ‘LastName: ‘ . $this->lastName;
return $display;
}
}

[/sourcecode]

สังเกตว่าในภาษา php นั้นเวลาเขียนเป็น class ส่วนมากเขาจะนิยมไม่มี tag ปิด ?>

ต่อมาเมื่อเราเขียน class เสร็จแล้วเราก็จะมาทำการสร้าง object ของ class Student ขึ้นเพื่อใช้งานมัน โดยที่ผมทำการสร้างไฟล์ index.php ขึ้นมาโดยมีโค้ดดังนี้

[sourcecode language=”php”]

Test Class Student

‘;
$student = new Student();

echo ‘

Set Property Class Student

‘;
$student->firstName = ‘Thaicoding’;
$student->lastName = ‘.Com’;
echo ‘

' . print_r($student) . '

‘;

echo ‘

Function Display

‘;
echo $student->display();
?>

[/sourcecode]

และเมื่อลองรันไฟล์ดูก็จะได้ผลลัพธ์ดังรูป

php oop

จะเห็นว่าเราใช้คำสั่ง new เพื่อเป็นการสร้าง object ใหม่ซึ่งกลายๆกับภาษาอื่นที่รองรับการเขียนโปรแกรมแบบ OOP นั้นเองต่อมาเราได้มีการกำหนดค่าให้ firstName กับ lastName ซึ่งเราสามารถกำหนดค่าได้โดยตรงเพราะ member ทั้ง 2 ตัวนั้นมันเป็นแบบ public นั้นเอง เมื่อกำหนดค่าแล้วในไฟล์ index.php นั้นได้มีการใช้คำสั่ง print_r เพื่อแสดงค่าต่างๆใน object student นั้นสุดท้ายคือการเรียกใช้ method display ที่เราเขียนการทำงานไว้ในไฟล์ class Student ซึ่งในการอ้างอิง member หรือ method ในภาษา PHP นั้นจะใช้เครื่อง -> นั้นเอง

Download SourceCode

Leave a Reply

Your email address will not be published. Required fields are marked *