PHP OOP - Phương thức tĩnh
PHP - Phương thức tĩnh
Các phương thức tĩnh có thể được gọi trực tiếp - mà không cần tạo một thể hiện của lớp trước.
Các phương thức tĩnh được khai báo bằng từ khóa static
:
Cú pháp
<?php
class ClassName {
public static function staticMethod () {
echo "Hello World!";
}
}
?>
Để truy cập một phương thức tĩnh, hãy sử dụng tên lớp, dấu hai chấm (::) và tên phương thức:
Cú pháp
ClassName :: staticMethod ();
Hãy xem một ví dụ:
Ví dụ
<?php
class
greeting {
public static function
welcome() {
echo "Hello World!";
}
}
// Call static method
greeting::welcome();
?>
Hãy tự mình thử »Ví dụ giải thích
Ở đây, chúng ta khai báo một phương thức tĩnh: Welcome(). Sau đó, chúng ta gọi phương thức tĩnh bằng cách sử dụng tên lớp, dấu hai chấm (::) và tên phương thức (mà không tạo một phiên bản của lớp trước).
PHP - Thông tin thêm về các phương thức tĩnh
Một lớp có thể có cả phương thức tĩnh và không tĩnh. Một phương thức tĩnh có thể được truy cập từ một phương thức trong cùng một lớp bằng cách sử dụng từ khóa self
và dấu hai chấm kép (::):
Ví dụ
<?php
class greeting {
public static function welcome() {
echo "Hello World!";
}
public function __construct()
{
self::welcome();
}
}
new
greeting();
?>
Hãy tự mình thử » Các phương thức tĩnh cũng có thể được gọi từ các phương thức trong các lớp khác. Để làm điều này, phương thức tĩnh phải là public
:
Ví dụ
<?php
class
A {
public static function
welcome() {
echo "Hello World!";
}
}
class
B {
public function
message() {
A::welcome();
}
}
$obj = new B();
echo $obj ->
message();
?>
Hãy tự mình thử » Để gọi một phương thức tĩnh từ lớp con, hãy sử dụng từ khóa parent
bên trong lớp con. Ở đây, phương thức tĩnh có thể là public
hoặc protected
.
Ví dụ
<?php
class domain {
protected static function
getWebsiteName() {
return "W3Schools.com";
}
}
class domainW3 extends domain {
public $websiteName;
public function __construct() {
$this->websiteName =
parent::getWebsiteName();
}
}
$domainW3 = new domainW3;
echo $domainW3 -> websiteName;
?>
Hãy tự mình thử »