ข้ามไปยังเนื้อหาหลัก
คู่มือระบบ เนื้อหาผ่านการตรวจสอบแล้ว

Properties: การกำหนดคุณลักษณะของ Object

บทความนี้กล่าวถึง Properties ซึ่งเป็นตัวแปรภายใน Class ที่ใช้เก็บข้อมูลเกี่ยวกับ Object โดยเปรียบเทียบกับส่วนประกอบของบ้านที่สร้างจากแบบบ้านเดียวกัน เนื้อหาครอบ...

Properties: การกำหนดคุณลักษณะของ Object

จากบทที่แล้ว เราได้เรียนรู้เกี่ยวกับ Class และ Object ซึ่งเป็นพื้นฐานของ Object-Oriented Programming (OOP) ใน PHP ไปแล้ว ในบทนี้ เราจะมาเจาะลึกถึงส่วนประกอบสำคัญอีกอย่างหนึ่งของ Class นั่นคือ Properties

Properties คือตัวแปรที่ถูกประกาศไว้ภายใน Class เพื่อใช้เก็บข้อมูลที่เกี่ยวข้องกับ Object นั้นๆ ลองนึกภาพ Class เป็นแบบบ้าน Properties ก็คือส่วนประกอบของบ้าน เช่น จำนวนห้องนอน สีของผนัง ขนาดของสวน เป็นต้น แต่ละ Object (บ้านที่สร้างจากแบบเดียวกัน) อาจมีค่า Properties ที่แตกต่างกันได้ เช่น บ้านหลังหนึ่งอาจมี 3 ห้องนอน ในขณะที่อีกหลังอาจมี 4 ห้องนอน

การประกาศ Properties

การประกาศ Properties ใน PHP ทำได้โดยการกำหนดตัวแปรภายใน Class โดยทั่วไปจะอยู่ด้านบนสุดของ Class ก่อน Methods ต่างๆ รูปแบบการประกาศคือ:

class MyClass {
  public $propertyName;
  protected $anotherProperty;
  private $secretProperty;
}
  • public, protected, และ private คือ Access Modifiers ซึ่งจะกล่าวถึงในบทถัดไป ในเบื้องต้น ให้เข้าใจว่า public หมายถึงทุกคนสามารถเข้าถึง Property นี้ได้
  • $propertyName, $anotherProperty, และ $secretProperty คือชื่อของ Properties ซึ่งต้องขึ้นต้นด้วยเครื่องหมาย $

ตัวอย่าง:

class Car {
  public $color;
  public $model;
  public $year;
}

ในตัวอย่างนี้ Class Car มี Properties สามตัวคือ $color, $model, และ $year ซึ่งใช้เก็บข้อมูลเกี่ยวกับสี รุ่น และปีที่ผลิตของรถยนต์

การกำหนดค่า Properties

หลังจากประกาศ Properties แล้ว เราสามารถกำหนดค่าให้กับ Properties เหล่านั้นได้ มีสองวิธีหลักๆ ในการกำหนดค่า:

  1. โดยตรงผ่าน Object: หลังจากสร้าง Object แล้ว เราสามารถเข้าถึง Properties ที่เป็น public ได้โดยใช้เครื่องหมาย ->
  2. ภายใน Class: เราสามารถกำหนดค่าเริ่มต้นให้กับ Properties ในตอนที่ประกาศ หรือกำหนดค่าภายใน Methods ของ Class

ตัวอย่าง: การกำหนดค่าโดยตรงผ่าน Object

class Car {
  public $color;
  public $model;
  public $year;
}

$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Toyota Camry";
$myCar->year = 2023;

echo "My car is a " . $myCar->color . " " . $myCar->model . " from " . $myCar->year . ".";
// Output: My car is a Red Toyota Camry from 2023.

ในตัวอย่างนี้ เราสร้าง Object ชื่อ $myCar จาก Class Car จากนั้นเรากำหนดค่าให้กับ Properties $color, $model, และ $year โดยใช้เครื่องหมาย ->

ตัวอย่าง: การกำหนดค่าเริ่มต้นภายใน Class

class Car {
  public $color = "White"; // ค่าเริ่มต้นคือสีขาว
  public $model;
  public $year;
}

$myCar = new Car();
echo "My car is " . $myCar->color; // Output: My car is White

$myCar->color = "Blue"; // เปลี่ยนค่าเป็นสีน้ำเงิน
echo "<br>Now my car is " . $myCar->color; // Output: Now my car is Blue

ในตัวอย่างนี้ เรากำหนดค่าเริ่มต้นให้กับ Property $color เป็น "White" เมื่อสร้าง Object $myCar Property $color จะมีค่าเป็น "White" โดยอัตโนมัติ เราสามารถเปลี่ยนค่านี้ได้ภายหลัง

ตัวอย่าง: การกำหนดค่าภายใน Method

class Car {
  public $color;
  public $model;
  public $year;

  public function setDetails($color, $model, $year) {
    $this->color = $color;
    $this->model = $model;
    $this->year = $year;
  }
}

$myCar = new Car();
$myCar->setDetails("Green", "Honda Civic", 2022);

echo "My car is a " . $myCar->color . " " . $myCar->model . " from " . $myCar->year . ".";
// Output: My car is a Green Honda Civic from 2022.

ในตัวอย่างนี้ เราสร้าง Method ชื่อ setDetails() ซึ่งรับค่าสี รุ่น และปีที่ผลิตเป็น Parameter ภายใน Method เราใช้ Keyword $this เพื่ออ้างอิงถึง Object ปัจจุบัน และกำหนดค่าให้กับ Properties ต่างๆ

ประเภทข้อมูลของ Properties

Properties สามารถเก็บข้อมูลได้หลายประเภท เช่น:

  • String: ข้อความ เช่น "Hello World"
  • Integer: จำนวนเต็ม เช่น 1, 2, 3
  • Float: จำนวนทศนิยม เช่น 3.14, 2.71
  • Boolean: ค่าความจริง (true หรือ false)
  • Array: ชุดของข้อมูล
  • Object: Object อื่นๆ
  • Null: ไม่มีค่า

ตัวอย่าง:

class Product {
  public $name = "Default Product"; // String
  public $price = 99.99; // Float
  public $inStock = true; // Boolean
  public $categories = ["Electronics", "Gadgets"]; // Array
}

Type Hinting (PHP 7.4+)

ตั้งแต่ PHP 7.4 เป็นต้นไป เราสามารถใช้ Type Hinting เพื่อระบุประเภทข้อมูลของ Properties ได้อย่างชัดเจน วิธีนี้ช่วยให้ Code ของเรามีความน่าเชื่อถือและอ่านง่ายขึ้น

class Product {
  public string $name = "Default Product";
  public float $price = 99.99;
  public bool $inStock = true;
  public array $categories = ["Electronics", "Gadgets"];
}

ถ้าเราพยายามกำหนดค่าที่ไม่ตรงกับ Type Hint ที่ระบุ PHP จะแสดงข้อผิดพลาด

สรุป

ในบทนี้ เราได้เรียนรู้เกี่ยวกับ Properties ซึ่งเป็นคุณลักษณะของ Object เราได้เรียนรู้วิธีการประกาศ Properties, กำหนดค่าให้กับ Properties, และประเภทข้อมูลที่ Properties สามารถเก็บได้ ความเข้าใจใน Properties เป็นสิ่งสำคัญในการออกแบบ Class ที่ดีและมีประสิทธิภาพ ในบทต่อไป เราจะมาเรียนรู้เกี่ยวกับ Methods ซึ่งเป็นพฤติกรรมของ Object

Office.in.th Custom Service

ต้องการพัฒนาระบบหรือปรับแต่งจากโครงสร้างนี้?

Office.in.th รับพัฒนาและออกแบบ Enterprise Web Application, API Integration และระบบบริหารงานภาครัฐ/เอกชน พร้อมการสนับสนุนระยะยาว

ดูบริการรับพัฒนาซอฟต์แวร์