ใน PHP Instance methods เป็นแนวทางหลัก แต่ Static methods ก็มีจุดประสงค์เฉพาะ Instance method ผูกกับ object ของคลาส Static method ผูกกับคลาสโดยตรง
Static Method
ใช้เมื่อข้อมูลคงที่สำหรับทุก object ของคลาส เรียกใช้โดยไม่ต้องสร้าง object
ตัวอย่าง
<?php
class Car{
static function getColor(){
return "blue";
}
}
echo Car::getColor();
?>
ผลลัพธ์
blue
คำอธิบาย
getColor() คืนค่าเดียวกันสำหรับทุก object จึงทำเป็น static ได้
Instance Method
ใช้เมื่อต้องโต้ตอบกับ properties ของคลาส ต้องสร้าง object ก่อน
ตัวอย่าง
<?php
class Employee{
private $empname;
function setEmpname($empname) { $this->empname = $empname; }
function getEmpname() { return $this->empname; }
}
$obj = new Employee();
$obj->setEmpname("Alex");
echo $obj->getEmpname();
?>
ผลลัพธ์
Alex
คำอธิบาย
ทุก employee มีชื่อต่างกัน ต้องมี object แยกกัน จึงใช้ instance method