Hướng dẫn can value of static variable be changed in php? - có thể thay đổi giá trị của biến tĩnh trong php không?

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ụ về mã PHP

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.

function foo[] {
    static $index = 0;
    $index++;
    echo "$indexn";
}

Gọi foo [] nhiều lần như vậy:

foo[];
foo[];
foo[];

sẽ lặp lại điều này:

1
2
3

Bug #28442Submitted:Modified:From:Assigned:Status:Package:3 [75,0%]OS:2 [50,0%]CVE-ID:
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?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. Votes:Bạn có thể thay đổi giá trị cho một biến tĩnh sau khi khởi tạo không?Reproduced: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.2004-05-19 09:27 UTC
4
Đâ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?
Thay đổi một biến tĩnh trong một lớp thay đổi nó trên các lớp phụ/siêu.
2005/03-10 14:25 UTC
AVG. Ghi bàn:4,8 ± 0,4
4 trên 4 [100,0%]Cùng một phiên bản:
5.0.3 Cùng một hệ điều hành:
kell_pt tại người dùng dot sf dot netHELLY [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
3
0

1
2
3
1

Mathijs vos ¶

fakhar_anwar123 tại hotmail dot com ¶

1
2
3
2

2 năm trước

14 năm trước

1
2
3
3

1
2
3
4

1
2
3
5

1
2
3
6

Mathijs vos ¶

17 năm trước

1
2
3
7

1
2
3
8

1
2
3
9

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
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
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
foo
2

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
3

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
4

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
foo
5

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
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
foo
4

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
foo
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
foo
9

static0

static1

1
2
3
5

static3

2 năm trước

Giá trị biến tĩnh có thể được thay đổi không?

static4

static5

static6

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
4

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?

static8

static9

static0

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
4

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?

static2

static3

static4

static5

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.

14 năm trước

static6

static7

static8

static9

Mathijs vos ¶

12 năm trước

static0

static1

static2

static3

fakhar_anwar123 tại hotmail dot com ¶

fakhar_anwar123 tại hotmail dot com ¶

static4

static5

static6

static7

static8

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
4

2 năm trước

Michael tại Digital Chgnosis Dot Removeethis Dot Com ¶

E_DEPRECATED0

E_DEPRECATED1

E_DEPRECATED2

E_DEPRECATED3

E_DEPRECATED4

E_DEPRECATED5

E_DEPRECATED6

E_DEPRECATED7

E_DEPRECATED8

E_DEPRECATED9

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
foo
4

Vvikramraj tại Yahoo Dot Com ¶

14 năm trước

3

1
2
3
5

5

Mathijs vos ¶

Michael tại Digital Chgnosis Dot Removeethis Dot Com ¶

6

7

8

9

Vvikramraj tại Yahoo Dot Com ¶

14 năm trước

::0

::1

::2

Mathijs vos ¶

17 năm trước

::3

::4

1
2
3
5

::6

Jay 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
3
5

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
3
5

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
foo
4

Giá trị biến tĩnh có thể được thay đổi không?

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.you can't change or modify them.

Trường tĩnh có thể được thay đổi không?

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.. But, what makes static variable unique is static variables belongs to the class instead of a particular object. We can create as many objects we need for a class.

Bạn có thể thay đổi giá trị cho một biến tĩnh sau khi khởi tạo không?

Đâ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.the value of this variable can never be changed in the current or in any class.

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.the variable will persist throughout the execution of the program even if the variable is declared in a function.

Bài Viết Liên Quan

Chủ Đề