Hướng dẫn what are the global variables in php? - các biến toàn cục trong php là gì?


Superglobals được giới thiệu trong Php 4.1.0 và là các biến tích hợp luôn có sẵn trong tất cả các phạm vi.


Biến toàn cầu PHP - Superglobals

Một số biến được xác định trước trong PHP là "Superglobals", điều đó có nghĩa là chúng luôn có thể truy cập, bất kể phạm vi - và bạn có thể truy cập chúng từ bất kỳ chức năng, lớp hoặc tệp nào mà không phải làm bất cứ điều gì đặc biệt.

Các biến Superglobal PHP là:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

Các chương tiếp theo sẽ giải thích một số Superglobals, và phần còn lại sẽ được giải thích trong các chương sau.



PHP Superglobal - $ Globals


Các biến siêu toàn cầu là các biến tích hợp luôn có sẵn trong tất cả các phạm vi.


$ Globals là một biến siêu toàn cầu PHP được sử dụng để truy cập các biến toàn cầu từ mọi nơi trong tập lệnh PHP (cũng từ bên trong các chức năng hoặc phương thức).

PHP lưu trữ tất cả các biến toàn cầu trong một mảng có tên $ Globals [index]. Chỉ số giữ tên của biến.

Ví dụ dưới đây cho thấy cách sử dụng biến số siêu toàn cầu $ Globals:

Thí dụ

PHP lưu trữ tất cả các biến toàn cầu trong một mảng có tên $ Globals [index].
$x = 75;
$y = 25;

& nbsp; bổ sung chức năng () {& nbsp; & nbsp; $ globals ['z'] = $ globals ['x'] + $ globals ['y']; }
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}

& nbsp; bổ sung (); Echo $ z; ?>
echo $z;
?>

Hãy tự mình thử »

Trong ví dụ trên, vì Z là một biến có trong mảng $ Globals, nó cũng có thể truy cập từ bên ngoài chức năng!



Pogregoire ## Live.fr ¶

$a 1;
include 
'b.inc';
?>

Jameslee at cs dot nmt dot edu ¶

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>

17 năm trước

Từ khóa global

Đầu tiên, một ví dụ sử dụng global:

Ví dụ #1 sử dụng global

$a 1;
$b 2;

function

Sum()
{
    global 
$a$b;$b $a $b;
Sum();
echo 
$b;
?>

Tập lệnh trên sẽ xuất ra

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
0. Bằng cách tuyên bố $ a và $ b toàn cầu trong hàm, tất cả các tham chiếu đến một trong hai biến sẽ đề cập đến phiên bản toàn cầu. Không có giới hạn về số lượng biến toàn cầu có thể được thao tác bởi một hàm.

Cách thứ hai để truy cập các biến từ phạm vi toàn cầu là sử dụng mảng $ Globals được xác định bằng PHP đặc biệt. Ví dụ trước có thể được viết lại như:

Ví dụ #2 sử dụng $ globals thay vì toàn cầu

$a 1;
$b 2;

function

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
3

Mảng $ Globals là một mảng kết hợp với tên của biến toàn cầu là khóa và nội dung của biến đó là giá trị của phần tử mảng. Lưu ý cách $ Globals tồn tại trong bất kỳ phạm vi nào, điều này là do $ Globals là một siêu thị. Đây là một ví dụ chứng minh sức mạnh của Superglobals:

Ví dụ #3 Ví dụ chứng minh Superglobals và Phạm vi

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
4

Ghi chú::

Sử dụng từ khóa global Bên ngoài chức năng không phải là lỗi. Nó có thể được sử dụng nếu tệp được bao gồm từ bên trong một hàm.

Sử dụng các biến Static object: NULL Static object: NULL Static object: NULL Static object: object(stdClass)#3 (1) { ["property"]=> int(1) } 6

Một tính năng quan trọng khác của phạm vi biến là biến tĩnh. Một biến tĩnh chỉ tồn tại trong phạm vi hàm cục bộ, nhưng nó không mất giá trị khi thực hiện chương trình rời khỏi phạm vi này. Xem xét ví dụ sau:

Ví dụ #4 Ví dụ Thể hiện nhu cầu về các biến tĩnh

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
7

Chức năng này khá vô dụng vì mỗi lần được gọi là đặt $ A thành

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
8 và in
Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
8. $ A ++ tăng biến không phục vụ mục đích nào vì ngay khi hàm thoát ra khỏi biến $ A biến mất. Để tạo chức năng đếm hữu ích sẽ không mất dấu của số lượng hiện tại, biến $ một được khai báo tĩnh:

Ví dụ #5 Ví dụ sử dụng các biến tĩnh

$a 1;
include 
'b.inc';
?>
0

Bây giờ, $ A chỉ được khởi tạo trong cuộc gọi đầu tiên của hàm và mỗi khi hàm $a 1;
include 
'b.inc';
?>
1 được gọi là nó sẽ in giá trị của $ a và tăng nó.

Các biến tĩnh cũng cung cấp một cách để đối phó với các hàm đệ quy. Một hàm đệ quy là một hàm tự gọi. Phải cẩn thận khi viết một hàm đệ quy vì có thể làm cho nó tái phát vô thời hạn. Bạn phải chắc chắn rằng bạn có một cách đủ để chấm dứt đệ quy. Hàm đơn giản sau đây được tính vào 10, sử dụng số lượng tĩnh $ để biết khi nào nên dừng:

Ví dụ #6 biến tĩnh với các hàm đệ quy

$a 1;
include 
'b.inc';
?>
2

Các biến tĩnh có thể được gán các giá trị là kết quả của các biểu thức không đổi, nhưng các biểu thức động, chẳng hạn như các lệnh gọi hàm, sẽ gây ra lỗi phân tích cú pháp.

Ví dụ #7 Khai báo các biến tĩnh

$a 1;
include 
'b.inc';
?>
3

Kể từ Php 8.1.0, khi một phương thức sử dụng các biến tĩnh được kế thừa (nhưng không được ghi đè), phương thức kế thừa giờ đây sẽ chia sẻ các biến tĩnh với phương thức mẹ. Điều này có nghĩa là các biến tĩnh trong các phương thức bây giờ hoạt động giống như các thuộc tính tĩnh.

Ví dụ #8 Sử dụng các biến tĩnh trong các phương thức được kế thừa

$a 1;
include 
'b.inc';
?>
4

Ghi chú::

Sử dụng từ khóa global Bên ngoài chức năng không phải là lỗi. Nó có thể được sử dụng nếu tệp được bao gồm từ bên trong một hàm.

Sử dụng các biến Static object: NULL Static object: NULL Static object: NULL Static object: object(stdClass)#3 (1) { ["property"]=> int(1) } 6

Một tính năng quan trọng khác của phạm vi biến là biến tĩnh. Một biến tĩnh chỉ tồn tại trong phạm vi hàm cục bộ, nhưng nó không mất giá trị khi thực hiện chương trình rời khỏi phạm vi này. Xem xét ví dụ sau:

$a 1;
include 
'b.inc';
?>
8

function

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
0

Ví dụ #4 Ví dụ Thể hiện nhu cầu về các biến tĩnh

NULL
object(stdClass)#1 (0) {
}

Chức năng này khá vô dụng vì mỗi lần được gọi là đặt $ A thành

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
8 và in
Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
8. $ A ++ tăng biến không phục vụ mục đích nào vì ngay khi hàm thoát ra khỏi biến $ A biến mất. Để tạo chức năng đếm hữu ích sẽ không mất dấu của số lượng hiện tại, biến $ một được khai báo tĩnh:

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
2

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
3

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
4

Ví dụ #4 Ví dụ Thể hiện nhu cầu về các biến tĩnh

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}

Chức năng này khá vô dụng vì mỗi lần được gọi là đặt $ A thành

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
8 và in
Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
8. $ A ++ tăng biến không phục vụ mục đích nào vì ngay khi hàm thoát ra khỏi biến $ A biến mất. Để tạo chức năng đếm hữu ích sẽ không mất dấu của số lượng hiện tại, biến $ một được khai báo tĩnh:

Ví dụ #5 Ví dụ sử dụng các biến tĩnh

Bây giờ, $ A chỉ được khởi tạo trong cuộc gọi đầu tiên của hàm và mỗi khi hàm $a 1;
include 
'b.inc';
?>
1 được gọi là nó sẽ in giá trị của $ a và tăng nó.

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
6

Các biến tĩnh cũng cung cấp một cách để đối phó với các hàm đệ quy. Một hàm đệ quy là một hàm tự gọi. Phải cẩn thận khi viết một hàm đệ quy vì có thể làm cho nó tái phát vô thời hạn. Bạn phải chắc chắn rằng bạn có một cách đủ để chấm dứt đệ quy. Hàm đơn giản sau đây được tính vào 10, sử dụng số lượng tĩnh $ để biết khi nào nên dừng:

Ví dụ #6 biến tĩnh với các hàm đệ quy

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
7

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
8

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
9

global0

Các biến tĩnh có thể được gán các giá trị là kết quả của các biểu thức không đổi, nhưng các biểu thức động, chẳng hạn như các lệnh gọi hàm, sẽ gây ra lỗi phân tích cú pháp.

Ví dụ #7 Khai báo các biến tĩnh

global1

global2

global3

global4

global5

Kể từ Php 8.1.0, khi một phương thức sử dụng các biến tĩnh được kế thừa (nhưng không được ghi đè), phương thức kế thừa giờ đây sẽ chia sẻ các biến tĩnh với phương thức mẹ. Điều này có nghĩa là các biến tĩnh trong các phương thức bây giờ hoạt động giống như các thuộc tính tĩnh.

Ví dụ #8 Sử dụng các biến tĩnh trong các phương thức được kế thừa

global6

global7

global8

global9

global0

global1

global2

global3

global4

Khai báo tĩnh được giải quyết trong thời gian biên dịch.

Ví dụ #6 biến tĩnh với các hàm đệ quy

global5

global6

global7

global4

Các biến tĩnh có thể được gán các giá trị là kết quả của các biểu thức không đổi, nhưng các biểu thức động, chẳng hạn như các lệnh gọi hàm, sẽ gây ra lỗi phân tích cú pháp.

Ví dụ #7 Khai báo các biến tĩnh

global9

global0

global1

global2

Kể từ Php 8.1.0, khi một phương thức sử dụng các biến tĩnh được kế thừa (nhưng không được ghi đè), phương thức kế thừa giờ đây sẽ chia sẻ các biến tĩnh với phương thức mẹ. Điều này có nghĩa là các biến tĩnh trong các phương thức bây giờ hoạt động giống như các thuộc tính tĩnh.

Ví dụ #8 Sử dụng các biến tĩnh trong các phương thức được kế thừa

global3

global4

global5

global6

global7

global8

global4

$a 1;
$b 2;
0

Khai báo tĩnh được giải quyết trong thời gian biên dịch.

Tài liệu tham khảo với các biến global

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
6

$a 1;
$b 2;
1

$a 1;
$b 2;
2

$a 1;
$b 2;
3

$a 1;
$b 2;
4

global4

moraesdno tại gmail dot com ¶

13 năm trước

$a 1;
$b 2;
6

$a 1;
$b 2;
7

global4

Simon Dot Barotte tại Gmail Dot Com ¶

5 năm trước

$a 1;
$b 2;
9

function0

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
9

function2

Pogregoire ## Live.fr ¶

6 năm trước

function3

function4

function5

function6

Jameslee at cs dot nmt dot edu ¶

17 năm trước

function7

function8

global4

Jake Dot Tunaley tại Berkeleyit Dot Com ¶

3 năm trước

Sum()
{
    global 
$a$b;$b $a $b;
Sum();
echo 
$b;
?>
0

Sum()
{
    global 
$a$b;$b $a $b;
Sum();
echo 
$b;
?>
1

Sum()
{
    global 
$a$b;$b $a $b;
Sum();
echo 
$b;
?>
2

Sum()
{
    global 
$a$b;$b $a $b;
Sum();
echo 
$b;
?>
3

global4

Các biến toàn cầu với các ví dụ là gì?

Ví dụ về biến toàn cầu trong C Bạn có thể nhận thấy rằng trong dòng 4, x và y được khai báo là hai trong số các biến toàn cầu của loại int.Ở đây, biến X sẽ được khởi tạo tự động thành 0. Sau đó, người ta có thể sử dụng các biến như X và Y bên trong bất kỳ chức năng đã cho.x and y get declared as two of the global variables of the type int. Here, the variable x will get initialized automatically to 0. Then one can use variables like x and y inside any of the given functions.

PHP có biến toàn cầu không?

Một số biến được xác định trước trong PHP là "Superglobals", điều đó có nghĩa là chúng luôn có thể truy cập, bất kể phạm vi - và bạn có thể truy cập chúng từ bất kỳ chức năng, lớp hoặc tệp nào mà không phải làm bất cứ điều gì đặc biệt.Các biến Superglobal PHP là: $ Globals. - and you can access them from any function, class or file without having to do anything special. The PHP superglobal variables are: $GLOBALS.

Biến toàn cầu là gì?

Một biến toàn cầu là một biến được khai báo trong phạm vi toàn cầu nói cách khác, một biến có thể nhìn thấy từ tất cả các phạm vi khác.Trong JavaScript, nó là một thuộc tính của đối tượng toàn cầu.a variable that is declared in the global scope in other words, a variable that is visible from all other scopes. In JavaScript it is a property of the global object.

Đâu là các biến toàn cầu được lưu trữ trong PHP?

PHP lưu trữ tất cả các biến toàn cầu trong một mảng có tên $ Globals [index].$GLOBALS[index].