Kiểu tĩnh PHP

Trong một số trường hợp nhất định, rất thuận tiện để truy cập các phương thức và thuộc tính dưới dạng một lớp hơn là một đối tượng. Điều này có thể được thực hiện với sự trợ giúp của từ khóa tĩnh. Bất kỳ phương thức nào được khai báo là tĩnh đều có thể truy cập được mà không cần tạo đối tượng. Các hàm tĩnh được liên kết với lớp, không phải là một thể hiện của lớp. Họ chỉ được phép truy cập các phương thức tĩnh và biến tĩnh. Để thêm một phương thức tĩnh vào lớp, từ khóa tĩnh được sử dụng

public static function test()
{
    // Method implementation
}

Chúng có thể được gọi trực tiếp bên ngoài lớp bằng cách sử dụng toán tử phân giải phạm vi (. ) như sau

MyClass::test();

Thí dụ. Ví dụ này minh họa hàm tĩnh là bộ đếm




/* Use static function as a counter */

 

class solution {

     

MyClass::test();
0
MyClass::test();
1
MyClass::test();
2
MyClass::test();
3

     

MyClass::test();
0
MyClass::test();
6
MyClass::test();
1
MyClass::test();
8
MyClass::test();
9

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
0_______11_______1
The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
2
MyClass::test();
2_______11_______4

MyClass::test();
0
The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
6

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
6

 

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
9_______1_______2
This is non-static
This is static
1

 

This is non-static
This is static
3
This is non-static
This is static
4
This is non-static
This is static
5
This is non-static
This is static
6
This is non-static
This is static
5
This is non-static
This is static
8
This is non-static
This is static
50

MyClass::test();
02 34

MyClass::test();
067
MyClass::test();
3

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
6

 

/* Use static function as a counter */1

đầu ra.

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5

Khi nào xác định các phương thức tĩnh?
Từ khóa tĩnh được sử dụng trong ngữ cảnh của các biến và phương thức chung cho tất cả các đối tượng của lớp. Do đó, bất kỳ logic nào có thể được chia sẻ giữa nhiều phiên bản của một lớp nên được trích xuất và đặt bên trong phương thức tĩnh. Các phương thức tĩnh PHP thường được sử dụng trong các lớp chỉ chứa các phương thức tĩnh thường được gọi là các lớp tiện ích của các khung công tác PHP như Laravel và CakePHP

Dưới đây là mã PHP cho thấy việc sử dụng các phương thức tĩnh

Thí dụ. Ví dụ này minh họa phương thức tĩnh trong PHP




/* Use static function as a counter */3

 

class /* Use static function as a counter */6

     

MyClass::test();
0
MyClass::test();
6
MyClass::test();
8  1 2  3 40

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
0_______72_______7 8 9  3 2
MyClass::test();
3

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
0_______11_______1  7 8 9
MyClass::test();
3

MyClass::test();
0
The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
6

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
6

 

class solution {4

MyClass::test();
0
MyClass::test();
6
MyClass::test();
1
MyClass::test();
8  1 20

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
0_______72_______2  3     5
MyClass::test();
3

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
0_______11_______1  2
MyClass::test();
3

MyClass::test();
0
The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
6

The next value is: 1
The next value is: 2
The next value is: 3
The next value is: 4
The next value is: 5
6

 

MyClass::test();
05

MyClass::test();
06  3_______1_______08
MyClass::test();
09

 

2

MyClass::test();
06
MyClass::test();
13
MyClass::test();
14_______1_______15

2 7

MyClass::test();
3

2

MyClass::test();
20_______1_______14
MyClass::test();
15

 

/* Use static function as a counter */1

đầu ra.

This is non-static
This is static

Tuy nhiên, một phương thức tĩnh không cho phép bạn xác định các phụ thuộc rõ ràng và bao gồm các biến toàn cục trong mã có thể được truy cập từ mọi nơi. Điều này có thể ảnh hưởng đến khả năng mở rộng của một ứng dụng. Hơn nữa, bạn sẽ gặp khó khăn khi thực hiện kiểm tra tự động trên các lớp có chứa các phương thức tĩnh. Do đó, chúng nên được sử dụng vì các tiện ích chứ không phải vì lý do tiện lợi

PHP là ngôn ngữ kịch bản phía máy chủ được thiết kế dành riêng cho phát triển web. Bạn có thể học PHP từ đầu bằng cách làm theo Hướng dẫn PHP và Ví dụ về PHP này

PHP 8 có được gõ tĩnh không?

PHP 8. 0 cho phép tĩnh làm kiểu trả về cho các phương thức của lớp . Các phương thức lớp PHP có thể trả về bản thân và cha mẹ trong các phiên bản trước, nhưng tĩnh không được phép trong các phiên bản PHP trước 8. 0. Kiểu trả về tĩnh mới được phép cho phép thu hẹp kiểu trả về thành lớp được gọi.

PHP có các kiểu tĩnh không?

Trong PHP, chúng ta có thể có cả lớp tĩnh cũng như lớp không tĩnh (khởi tạo) .

Tại sao sử dụng tĩnh trong PHP?

Từ khóa tĩnh được sử dụng để khai báo các thuộc tính và phương thức của một lớp là tĩnh . Các thuộc tính và phương thức tĩnh có thể được sử dụng mà không cần tạo một thể hiện của lớp. Từ khóa tĩnh cũng được sử dụng để khai báo các biến trong hàm giữ nguyên giá trị của chúng sau khi hàm kết thúc.

Làm cách nào để khai báo một biến tĩnh trong PHP?

Bạn có thể khai báo một biến là tĩnh đơn giản bằng cách đặt từ khóa STATIC trước tên biến .