Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Static Method vs Instance Method trong PHP

Instance method gắn với object (cần new Class()). Static method gắn với class (gọi Class::method()).

Static Method

Dùng khi hành vi không phụ thuộc state của object (giá trị cố định cho mọi instance).

<?php
class Car {
    public static function getColor() { return "blue"; }
}
echo Car::getColor(); // blue (không cần new Car())
?>

Instance Method

Dùng khi cần truy cập $this (thuộc tính instance).

<?php
class Employee {
    private $name;
    public function setName($n) { $this->name = $n; }
    public function getName() { return $this->name; }
}
$e = new Employee();
$e->setName("Alex");
echo $e->getName(); // Alex
?>

Chọn cái nào?

  • Static: tiện ích (helper), factory, stateless.
  • Instance: logic nghiệp vụ, stateful, cần $this.
  • Không lạm dụng static: khó test, vi phạm OOP, coupling cứng.