Trang chủ / Cách sử dụng các biến tĩnh trong hàm PHPHow to use static variables in a PHP function Có thể cần một biến tĩnh là cần thiết trong hàm PHP; Các biến tĩnh duy trì giá trị của chúng giữa các cuộc gọi hàm và gọn gàng hơn là sử dụng biến toàn cầu vì chúng không thể được sửa đổi bên ngoài hàm. [Nếu hàm được chứa trong một lớp, bạn có thể sử dụng biến lớp riêng hoặc được bảo vệ thay vì biến tĩnh bên trong hàm]. Ví dụ mã PHP dưới đây cho thấy một hàm sử dụng biến tĩnh. Khi hàm đầu tiên được gọi là won có một giá trị được đặt để nó khởi tạo với = 0 bit và sau đó tăng lên trên mỗi cuộc gọi tiếp theo. Lưu ý rằng nó không cần phải là một số nguyên; Bất kỳ loại nào nên hoạt động tốt. Dòng Echo $ Index là để hiển thị ví dụ hoạt động. Gọi foo [] nhiều lần như vậy: sẽ lặp lại điều này:Ví dụ về mã PHP
function foo[] {
static $index = 0;
$index++;
echo "$indexn";
}
foo[];
foo[];
foo[];
1
2
3
Nói một cách đơn giản, nếu bạn sử dụng từ khóa tĩnh với một biến hoặc phương thức bên trong một lớp, thì cho mọi trường hợp bạn tạo cho lớp đó, các thành viên tĩnh này vẫn không đổi và bạn không thể thay đổi hoặc sửa đổi chúng. | |||||||
Trường tĩnh có thể được thay đổi không? | Modified:Vâng, nó có thể được thay đổi. Nhưng, những gì làm cho biến tĩnh duy nhất là các biến tĩnh thuộc về lớp thay vì một đối tượng cụ thể. Chúng ta có thể tạo càng nhiều đối tượng chúng ta cần cho một lớp. |
| |||||
AVG. Ghi bàn: | Assigned:4,8 ± 0,4 | ||||||
4 trên 4 [100,0%] | Package:Cùng một phiên bản: | ||||||
5.0.3 | OS:Cùng một hệ điều hành: | ||||||
kell_pt tại người dùng dot sf dot net | CVE-ID:HELLY [Hồ sơ] |
Đóng
Vấn đề công cụ kịch bản
Phiên bản PHP:
*
Báo cáo riêng tư:
KhôngCommentsChangesGit/SVN commitsRelated reports
Đây là một biến tĩnh vì vậy bạn sẽ không cần bất kỳ đối tượng nào của lớp để truy cập nó. Đó là cuối cùng vì vậy giá trị của biến này không bao giờ có thể được thay đổi trong hiện tại hoặc trong bất kỳ lớp nào.
Là biến tĩnh vĩnh viễn?
tĩnh là một biến. Giá trị có thể thay đổi, nhưng biến sẽ tồn tại trong suốt quá trình thực hiện chương trình ngay cả khi biến được khai báo trong một hàm.
Mẹo
Trang này mô tả việc sử dụng từ khóa static
để xác định các phương thức và thuộc tính tĩnh. static
cũng có thể được sử dụng để xác định các biến tĩnh và cho các ràng buộc tĩnh muộn. Vui lòng tham khảo các trang đó để biết thông tin về những ý nghĩa của static
.
Khai báo các thuộc tính hoặc phương thức lớp là tĩnh giúp chúng có thể truy cập mà không cần khởi tạo lớp. Chúng cũng có thể được truy cập thống kê trong một đối tượng lớp khởi tạo.
Phương pháp tĩnhError.
Bởi vì các phương thức tĩnh có thể gọi được mà không có một thể hiện của đối tượng được tạo ra, nên việc biến giả $ này không có sẵn bên trong các phương thức được khai báo là tĩnh.E_DEPRECATED
warning.
Cảnh báo
Gọi các phương thức phi tĩnh là ném một lỗi.
Trước PHP 8.0.0, việc gọi các phương thức phi tĩnh được không dùng sẽ không được chấp nhận và tạo ra cảnh báo E_DEPRECATED
.
Ví dụ #1 Phương pháp tĩnh ví dụ
Tính chất tĩnh
foo[]; foo[]; foo[];4
foo[]; foo[]; foo[];5
foo[]; foo[]; foo[];6
Các thuộc tính tĩnh được truy cập bằng toán tử phân giải phạm vi [::
] và không thể được truy cập thông qua toán tử đối tượng [
foo[]; foo[]; foo[];0].
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo
Có thể tham chiếu lớp bằng một biến. Giá trị của biến không thể là một từ khóa [ví dụ: foo[];
foo[];
foo[];
1, foo[];
foo[];
foo[];
2 và static
]. ¶
Michael tại Digital Chgnosis Dot Removeethis Dot Com ¶
foo[]; foo[]; foo[];7
Vvikramraj tại Yahoo Dot Com ¶ ¶
14 năm trước
foo[]; foo[]; foo[];8
foo[]; foo[]; foo[];9
1 2 30
1 2 31
Mathijs vos ¶ ¶
fakhar_anwar123 tại hotmail dot com ¶
1 2 32
2 năm trước ¶
14 năm trước
1 2 33
1 2 34
1 2 35
1 2 36
Mathijs vos ¶ ¶
17 năm trước
1 2 37
1 2 38
1 2 39
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo0
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo1
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo2
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo3
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo4
Mathijs vos ¶ ¶
fakhar_anwar123 tại hotmail dot com ¶
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo5
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo6
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo4
2 năm trước ¶
fakhar_anwar123 tại hotmail dot com ¶
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo8
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo9
static
0
static
1
1 2 35
static
32 năm trước ¶
Giá trị biến tĩnh có thể được thay đổi không?
static
4
static
5
static
6
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo4
Nói một cách đơn giản, nếu bạn sử dụng từ khóa tĩnh với một biến hoặc phương thức bên trong một lớp, thì cho mọi trường hợp bạn tạo cho lớp đó, các thành viên tĩnh này vẫn không đổi và bạn không thể thay đổi hoặc sửa đổi chúng. ¶
Giá trị biến tĩnh có thể được thay đổi không?
static
8
static
9
static
0
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo4
Nói một cách đơn giản, nếu bạn sử dụng từ khóa tĩnh với một biến hoặc phương thức bên trong một lớp, thì cho mọi trường hợp bạn tạo cho lớp đó, các thành viên tĩnh này vẫn không đổi và bạn không thể thay đổi hoặc sửa đổi chúng. ¶
Trường tĩnh có thể được thay đổi không?
static
2
static
3
static
4
static
5Vâng, nó có thể được thay đổi. Nhưng, những gì làm cho biến tĩnh duy nhất là các biến tĩnh thuộc về lớp thay vì một đối tượng cụ thể. Chúng ta có thể tạo càng nhiều đối tượng chúng ta cần cho một lớp. ¶
14 năm trước
static
6
static
7
static
8
static
9Mathijs vos ¶ ¶
12 năm trước
static
0
static
1
static
2
static
3fakhar_anwar123 tại hotmail dot com ¶ ¶
fakhar_anwar123 tại hotmail dot com ¶
static
4
static
5
static
6
static
7
static
8
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo4
2 năm trước ¶
Michael tại Digital Chgnosis Dot Removeethis Dot Com ¶
E_DEPRECATED
0
E_DEPRECATED
1
E_DEPRECATED
2
E_DEPRECATED
3
E_DEPRECATED
4
E_DEPRECATED
5
E_DEPRECATED
6
E_DEPRECATED
7
E_DEPRECATED
8
E_DEPRECATED
9
0
1
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo4
Vvikramraj tại Yahoo Dot Com ¶ ¶
14 năm trước
3
1 2 35
5Mathijs vos ¶ ¶
Michael tại Digital Chgnosis Dot Removeethis Dot Com ¶
6
7
8
9Vvikramraj tại Yahoo Dot Com ¶ ¶
14 năm trước
::
0
::
1
::
2Mathijs vos ¶ ¶
17 năm trước
::
3
::
4
1 2 35
::
6Jay Cain ¶ ¶
12 năm trước
::
7
::
8
::
1
foo[]; foo[]; foo[];00
Mirco ¶ ¶
12 năm trước
foo[]; foo[]; foo[];01
foo[]; foo[]; foo[];02
foo[]; foo[]; foo[];03
foo[]; foo[]; foo[];04
1 2 35
foo[]; foo[]; foo[];06
Mirco ¶ ¶
12 năm trước
foo[]; foo[]; foo[];07
foo[]; foo[]; foo[];08
foo[]; foo[]; foo[];09
foo[]; foo[]; foo[];10
jkenigso tại utk dot edu ¶ ¶
8 năm trước
foo[]; foo[]; foo[];11
foo[]; foo[]; foo[];12
foo[]; foo[]; foo[];13
foo[]; foo[]; foo[];14
Michael tại Digital Chgnosis Dot Removeethis Dot Com ¶ ¶
17 năm trước
foo[]; foo[]; foo[];15
foo[]; foo[]; foo[];16
1 2 35
foo[]; foo[]; foo[];18
Vvikramraj tại Yahoo Dot Com ¶ ¶
14 năm trước
foo[]; foo[]; foo[];19
Mathijs vos ¶ ¶
14 năm trước
foo[]; foo[]; foo[];20
foo[]; foo[]; foo[];09
foo[]; foo[]; foo[];22
Mathijs vos ¶ ¶
fakhar_anwar123 tại hotmail dot com ¶
foo[]; foo[]; foo[];23
foo[]; foo[]; foo[];24
foo foo Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23 Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23 foo foo foo foo4