Sự khác biệt chính xác giữa các biến GLOBAL và STATIC trong PHP là gì? Và cái nào là thích hợp hơn để sử dụng, khi chúng ta muốn sử dụng một biến trong nhiều hàm?Sự khác nhau giữa biến "GLOBAL" và "STATIC" trong PHP là gì?
Cảm ơn.
Sự khác biệt chính xác giữa các biến GLOBAL và STATIC trong PHP là gì? Và cái nào là thích hợp hơn để sử dụng, khi chúng ta muốn sử dụng một biến trong nhiều hàm?Sự khác nhau giữa biến "GLOBAL" và "STATIC" trong PHP là gì?
Cảm ơn.
Biến tĩnh chỉ ngụ ý rằng var thuộc về một lớp nhưng có thể được tham chiếu mà không cần phải khởi tạo lớp đã nói. Một var toàn cục tồn tại trong không gian tên chung và có thể được tham chiếu bởi bất kỳ hàm nào trong bất kỳ lớp nào. Vars toàn cầu luôn bị cau mày bởi vì chúng dễ bị lạm dụng, ghi đè, vô tình tham chiếu, v.v. Ít nhất với vars tĩnh bạn cần tham khảo qua Class::var;
Toàn cầu được sử dụng để lấy các vars toàn cầu có thể được xác định trong tập lệnh hoặc không nằm trong cùng phạm vi.
ví dụ:
<?php
$g_var = 1;
function test() {
var_dump($GLOBAL['g_var']);
global $g_var;
var_dump($g_var);
}
Tĩnh được sử dụng để xác định var có toàn bộ thời lượng tập lệnh và chỉ init một lần.
ví dụ:
<?php
function test() {
static $cnt = 0;
$cnt ++;
echo $cnt;
}
$i = 10;
while (-- $i) {
test();
}
vì vậy bạn có nghĩa là, toàn cầu có thể thay đổi bất cứ lúc nào nhưng tĩnh là loại liên tục ?? –
@ Không biết không, tôi không có ý đó. tĩnh vaiable có thể được thay đổi một cách tự do. Nhưng thao tác init chỉ chạy một lần. Xem ví dụ của tôi, "static $ cnt = 0" chỉ chạy một lần, sau đó mỗi lần func gọi, biến được thêm bởi một. – wedgwood
Cảm ơn đã giải thích với lớp: var, nhưng đối với bối cảnh này tôi lo ngại về biến tuyên bố TĨNH trong một chức năng –