Sự khác biệt giữa toàn cầu và Superglobals trong PHP là gì?

Có nhiều biến siêu toàn cầu PHP, chẳng hạn như sau đây là Biến siêu toàn cầu [superglobal]

$GLOBALS, $_server,$_get,$_post,$_files,$_cookie,$_session,$_request,$_env

Lưu ý chính thức

$GLOBALS-Tham chiếu tất cả các biến có sẵn trong phạm vi toàn cầu

Một mảng kết hợp toàn cầu có chứa tất cả các biến. Tên của biến là khóa của mảng

Nghĩa là, các biến toàn cục đã xảy ra có thể được lấy bằng $globals mảng này

Trong vòng đời PHP, cái gọi là biến toàn cục được định nghĩa bên ngoài thân hàm không thể được lấy trực tiếp bên trong hàm

$foo = "Example content"; test []; function test [] {    $foo = "local variable";    Echo ' $foo in current scope: '. $foo. "
"; Echo ' $foo in global scope: '. $GLOBALS ["foo"]. "

Như ví dụ trên, để truy cập $foo bên ngoài phải sử dụng mảng $GLOBALS. Điều này cũng đúng với các biến toàn cục bên ngoài xuất hiện thông qua tệp bao gồm

Trong PHP, global cũng có chức năng này, khác với $GLOBALS ở chỗ

Toàn cầu trong hàm tạo ra một biến bí danh trỏ đến biến bên ngoài của hàm, không phải biến bên ngoài thực sự của hàm

$GLOBALS [] Cuộc gọi thực tế là một biến bên ngoài và bên trong và bên ngoài hàm luôn nhất quán

Đối với một biến thành viên trong một lớp, chức năng trong lớp phải được truy cập bằng cách sử dụng $this-> và không thể được sử dụng trong chế độ $globals

Vai trò của toàn cầu là xác định toàn cầu, nhưng biến toàn cầu này không được áp dụng cho toàn bộ trang web mà cho trang hiện tại, bao gồm tất cả các tệp bao gồm hoặc yêu cầu

Thứ hai, giải thích ví dụ

function T1 [] {    global $var 1, $var 2;    $var 2 = & $var 1;} Function T2 [] {    $GLOBALS [' var3 '] = & $GLOBALS [' var1 '];} $var 1 = 5; $var 2 = $var 3 = 0;t1 [];p rint $var 2. " \ n "; T2 [];p rint $var 3." \ n ";

Kết quả của việc thực hiện là

05

Tại sao không phải là 2 5 thay vì 0 và 5?

Xem lại ví dụ một lần nữa

function T1 [] {    global $var 1;    $var 1 = 2;    Unset [$var 1];} Function T2 [] {    $GLOBALS [' var1 '] = 3;    unset [$GLOBALS [' var1 ']];} $var 1 = 1;t1 [];p rint $var 1. "\ n"; T2 [];p rint $var 1. "\ n";

Kết quả thực hiện chỉ được nhập một 2;

$GLOBALS là một mảng được tạo tự động bởi tất cả các biến toàn cục đã xác định. Tên biến là chỉ số của mảng

Tức là $globals[' var1 '] là biến giống như biến $var1 bên ngoài hàm nên khi bỏ $globals[' var1 ' thì biến đó không còn tồn tại và không thể xuất ra tất cả

Ghi chú. $GLOBALS là biến toàn cục tự động. Điều này có nghĩa là nó hoạt động trong tất cả các tập lệnh. Bạn không cần sử dụng $GLOBALS toàn cầu trong một hàm hoặc phương thức;

"$var 1 toàn cầu;"

Nó không phải là một biến ngoài hàm thực, nó chỉ tồn tại bên trong hàm, vì vậy ngay cả khi biến bí danh bị xóa trong hàm cũng không ảnh hưởng đến các biến bên ngoài, nhưng có thể sửa đổi giá trị của các biến bên ngoài hàm

Có lẽ một số người luôn muốn biết sự khác biệt giữa cái này và cái kia. trong chương trình PHP, bao gồm các chương trình khác trong nghiên cứu, tự thử nghiệm, theo kết quả của suy nghĩ, đôi khi nhiều hơn tìm kiếm trên Internet có thể đến nhanh hơn, chính xác hơn. Chúng ta hãy xem phạm vi toàn cầu của PHP truy cập vào các biến để làm gì?

Ví dụ một. Global định nghĩa một biến toàn cầu

function Test_global [] {    global $var 1;    $var 1 = ' OK ';    Unset [$var 1];} Test_global []; $var 2 = & $var 1;unset [$var 1]; Echo $var 2;

Không đưa kết quả trước, tự chạy chương trình. Các biến bên trong hàm có thể được truy cập

Kết quả có thể thấy, unset chỉ ngắt tên biến khỏi giá trị của biến, không hủy ngay giá trị của biến và biến toàn cục được định nghĩa bên trong hàm, thực tế bên ngoài chỉ sử dụng bí danh bên trong hàm

Chúng ta đã thảo luận về biến và biến toàn cục trong PHP trong bài viết PHP. Biến và kiểu dữ liệu. Trong bài viết này, chúng ta sẽ tìm hiểu về superglobals trong PHP

Đây là các biến mảng được định nghĩa đặc biệt trong PHP giúp bạn dễ dàng lấy thông tin về một yêu cầu hoặc ngữ cảnh của nó. Các siêu toàn cầu có sẵn trong toàn bộ kịch bản của bạn. Các biến này có thể được truy cập từ bất kỳ chức năng, lớp hoặc bất kỳ tệp nào mà không cần thực hiện bất kỳ tác vụ đặc biệt nào, chẳng hạn như khai báo bất kỳ biến toàn cục nào, v.v. Chúng chủ yếu được sử dụng để lưu trữ và lấy thông tin từ trang này sang trang khác, v.v. trong một ứng dụng.  

Dưới đây là danh sách các biến siêu toàn cầu có sẵn trong PHP.  

  1. $GLOBALS
  2. $_SERVER
  3. $_REQUEST
  4. $_GET
  5. $_POST
  6. $_SESSION
  7. $_COOKIE
  8. $_FILES
  9. $_ENV

Bây giờ chúng ta hãy tìm hiểu chi tiết về một số siêu toàn cầu này.   

  • $GLOBALS. Nó là một biến siêu toàn cầu được sử dụng để truy cập các biến toàn cục từ bất kỳ đâu trong tập lệnh PHP. PHP lưu trữ tất cả các biến toàn cục trong mảng $GLOBALS[] trong đó chỉ mục chứa tên biến toàn cục, có thể truy cập được.
    Chương trình dưới đây minh họa việc sử dụng $GLOBALS trong PHP.

PHP




Chủ Đề