Phương thức tĩnh (static method) và thuộc tính tĩnh (static property) trong PHP

Đây là bài 36/39 bài của series môn học Lập trình Web PHP

Trong bài này, chúng ta sẽ tìm hiểu về static property và static method trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

1. Phương thức tĩnh (static method) trong PHP

Phương thức tĩnh (static method) có thể được gọi trực tiếp bằng tên của lớp (class) chứa nó mà không cần phải tạo một đối tượng của lớp. Static method được khai báo với từ khóa static:

<?php
class MyClass {
  //declare a static method with static keyword
  public static function staticMethod() {
    echo "Welcome to gochocit.com!";
  }
}
?>

Để gọi static method, chúng ta sử dụng tên lớp, toán tử :: và tên static method.

MyClass::staticMethod();

Một lớp có thể có cả phương thức staticnon-static. Một static method có thể được truy cập từ một non-static method trong cùng một lớp bằng cách sử dụng từ khóa selftoán tử ::.

<?php
class MyClass {
  //static method
  public static function welcome() {
    echo "Welcome to gochocit.com!";
  }
  //constructor
  public function __construct() {
    self::welcome();
  }
}

$class1 = new MyClass();
?>
Kết quả
Welcome to gochocit.com!

Những static method có access modifierpublic có thể được gọi từ những lớp khác.

<?php
class MyClass {
  //static method
  public static function welcome() {
    echo "Welcome to gochocit.com!";
  }
}
class Greeting {
  public function message() {
    MyClass::welcome();
  }
}
?>

Chúng ta cũng có thể gọi một static method từ một lớp con. Để thực hiện việc này, chúng ta cần sử dụng từ khóa parent. Và access modifier của static method phải là public hoặc protected.

<?php
class Animal {
  //static method
  protected static function info() {
    echo "This is an animal.";
  }
}
class Cat extends Animal{
  public function __construct() {
    parent::info();
    echo "<br>I am a Cat.";
  }
}
new Cat();
?>
Kết quả
This is an animal.
I am a Cat.

2. Thuộc tính tĩnh (static property) trong PHP

Thuộc tính tĩnh (static property) có thể được gọi trực tiếp bằng tên của lớp (class) chứa nó mà không cần phải tạo một đối tượng của lớp. Static property được khai báo với từ khóa static:

<?php
class MyClass {
  public static $staticProp = "Gochocit.com";
}
?>

Để gọi static property, chúng ta sử dụng tên lớp, toán tử :: và tên static property.

MyClass::$staticProp;

Một lớp có thể có cả thuộc tính staticnon-static. Một thuộc tính static có thể được truy cập từ một method trong cùng một lớp bằng cách sử dụng từ khóa selftoán tử ::.

<?php
class MyWebSite {
  public static $domainname = "Gochocit.com";
  public function getDomainName() {
    return self::$domainname;
  }
}
$web = new MyWebSite();
echo $web->getDomainName();
?>
Kết quả
Gochocit.com

Chúng ta có thể gọi một thuộc tính static từ một lớp con bằng cách sử dụng từ khóa parent. Và access modifier của static method phải là public hoặc protected.

<?php
class MyWebSite {
  public static $domainname = "Gochocit.com";
}
class MyShop extends MyWebSite{
  public function getDommainName() {
    return parent::$domainname;
  }
}
$shop = new MyShop();
echo $shop->getDommainName();
?>
Kết quả
Gochocit.com

Chúng ta đã vừa tìm hiểu static method và static property của lớp (class) trong PHP. Chúng đều là các thành phần của lớp chứ không phải của đối tượng thuộc lớp. Và chúng có thể dễ dàng được truy cập thông qua tên lớp.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Trait là gì? Cách sử dụng Trait trong PHPNamespace trong PHP dùng để làm gì? >>
Chia sẻ trên mạng xã hội:

Tác giả Vinh Lê

Vinh Lê hiện đang là biên tập viên tại Góc Học IT.

Bài viết của Vinh Lê

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.