PHP Class/Object

Class และ Object เป็นลักษณะหลัก 2 อย่างของการเขียนโปรแกรมเชิงวัตถุ ซึ่ง

  • Class เป็นพิมพ์เขียวในการสร้าง Object 
  • Object คืออินสแตนซ์ของ Class 

ตัวอย่าง คลาสและออบเจ็กต์

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

Class  Object
ดอกไม้ ดอกทานตะวัน
ดอกบัว
ดอกมะลิ
ดอกกุหลาบ

ตารางที่ 1 คลาสดอกไม้

จากตารางที่ 1 เป็นการยกตัวอย่างในเรื่องของคลาสดอกไม้ และมีออบเจ็กต์เป็น ดอกทานตะวัน , ดอกบัว , ดอกมะลิ , ดอกกุหลาบ จากข้อมูลข้างต้นสอดคล้องกับข้อความที่ว่า “Class เป็นพิมพ์เขียวในการสร้าง Object  และ Object คืออินสแตนซ์ของ Class “

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

Class  Object
อาหาร ผัดผักบุ้ง
ต้มไก่
ทอดไข่
ลาบเป็ด

ตารางที่ 2 คลาสอาหาร

1.การสร้าง Class

ในการสร้างคลาส ชื่อคลาสจะต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่

<?php 

class Flower{
 // ส่วนของการเขียนโค้ด
}

?>

ไฟล์ที่ 1 test_class.php

ภายในคลาสจะประกอบไปด้วย

1.คุณสมบัติ (Properties)

ตัวอย่าง เช่น คลาสอาหาร มีคุณสมบัติ ชื่ออาหาร รสชาด ประเภทอาหาร ซึ่งคุณสมบัติเหล่านี้สามารถนำไปเขียนในลักษณะ $name, $taste, $type เพื่อเก็บคุณสมบัติเมื่อมีการสร้างวัตถุ (Object)

ตัวอย่างการสร้าง Class ที่มีการกำหนดคุณสมบัติของคลาส

<?php

class Flower{
// คุณสมบัติ
  public $name;
  public $taste;
  public $type;
}

?>

ไฟล์ที่ 2 test_class.php(2)

2.วิธีการ (Method) 

Method คือวิธีการดำเนินการต่างๆนั่นเอง เช่น เราสร้างคลาสอาหารที่ประกอบไปด้วยคุณสมบัติหลายอย่าง ต่อมาเป็นการสร้าง Method เพื่อดำเนินการกำหนดชื่อ และแสดงชื่อ เป็นต้น

ตัวอย่างการสร้าง Class ที่มีการกำหนดคุณสมบัติและ วิธีการ (Method)

<?php 

class Flower{
 public $name;
 public $taste;
 public $type;

 // วิธีการ (method)
 function setName($name){
  $this->name = $name;
 }
 function getName(){
  return $this->name;
 }

 function setTaste($taste){
  $this->taste = $taste;
 }
 function getTaste(){
  return $this->taste;
 }

 function setType($type){
  $this->type = $type;
 }

 function getType(){
  return $this->type;
 }

}

?>

ไฟล์ที่ 3 test_class.php(3)

 

2.การสร้าง Object

ในการสร้างวัตถุ (object) ในที่นี้ได้นำเอาโค้ดจากไฟล์ที่ 3 test_class.php(3) มาใช้ในการสร้างวัตถุ (object)

<?php 
  class Flower{
    public $name;
    public $taste;
    public $type; 
    // วิธีการ (method)
    function setName($name){ 
    	$this->name = $name; 
    }
    function getName(){ 
    	return $this->name; 
    } 
    
    function setTaste($taste){ 
    	$this->taste = $taste; 
    }
    function getTaste(){ 
    	return $this->taste; 
    } 
    function setType($type){ 
      $this->type = $type; 
    } 
    function getType(){ 
      return $this->type; 
    } 
  } 
  
  $lotus = new Flower();
  $lotus->setName("ดอกบัว");
  $lotus->setTaste("ฟาด");
  $lotus->setType("ดอกไม้บูชา");
  
  echo $lotus->getName()."<br>";
  echo $lotus->getTaste()."<br>";
  echo $lotus->getType();
?>

ไฟล์ที่ 4 test_create_object.php

อธิบายขั้นตอนในการสร้างคลาสและวัตถุของไฟล์ที่ 4

  • บรรทัดที่ 2 สร้างคลาสที่ชื่อว่า Flower
  • บรรทัดที่ 3-5 กำหนดคุณสมบัติของคลาส โดยแบ่งออกเป็น 3 อย่าง คือ $name, $taste, $type
  • บรรทัดที่ 7,10 14,17 20,23 สร้างวิธีการ (Method) ที่ทำงานหลักๆ แบ่งออกเป็น 2 Method คือ 1.กำหนดค่า 2.ส่งคืนค่า
  • บรรทัดที่ 28 สร้างวัตถุ (Object) ซึ่งจากตัวอย่างเป็นการสร้างวัตถุที่เป็นดอกบัว
  • บรรทัดที่ 29-31 กำหนดค่าให้กับ method ที่ขึ้นต้นด้วย set… 
  • บรรทัดที่ 33-35 เรียกใช้เมธอดที่ขึ้นต้นด้วย get… เพื่อแสดงข้อมูล