PHP global

Ngôn ngữ lập trình PHP và Biến Toàn Cầu (Global Variables)

Trong PHP, phạm vi của biến (scope) xác định nơi mà biến có thể được truy cập trong mã của bạn. Biến toàn cầu (global variables) là những biến có phạm vi toàn cục, tức là chúng có thể được truy cập từ bất kỳ đâu trong mã nguồn, kể cả trong các hàm.

Định nghĩa Biến Toàn Cầu

Biến toàn cầu được định nghĩa bên ngoài bất kỳ hàm nào và có thể được truy cập từ bên trong các hàm nếu bạn chỉ định rõ ràng. Để sử dụng biến toàn cầu trong một hàm, bạn cần sử dụng từ khóa global.

Ví dụ về Biến Toàn Cầu

$myVar = 10; // Biến toàn cầu

function myFunction() {
    global $myVar; // Khai báo biến toàn cầu
    $myVar += 5; // Thay đổi giá trị của biến toàn cầu
}

myFunction();
echo $myVar; // Kết quả là 15

Cách sử dụng Biến Toàn Cầu

Để sử dụng biến toàn cầu trong hàm, bạn thực hiện theo các bước sau:

  1. Khai báo biến toàn cầu bên ngoài hàm.
  2. Sử dụng từ khóa global bên trong hàm để truy cập và thay đổi giá trị của biến.

Các Biến Toàn Cầu Khác

PHP cũng cung cấp một số biến toàn cầu tích hợp sẵn mà bạn có thể sử dụng, chẳng hạn như:

  • $_GLOBALS: Mảng chứa tất cả các biến toàn cục.
  • $_POST: Mảng chứa dữ liệu được gửi qua phương thức POST.
  • $_GET: Mảng chứa dữ liệu được gửi qua phương thức GET.
  • $_SESSION: Mảng chứa các biến phiên (session) của người dùng.

Ví dụ với $_GLOBALS

$x = 5;
$y = 10;

function sum() {
    return $GLOBALS['x'] + $GLOBALS['y']; // Sử dụng biến toàn cầu
}

echo sum(); // Kết quả là 15

Khi nào nên sử dụng Biến Toàn Cầu?

Việc sử dụng biến toàn cầu có thể dẫn đến mã khó đọc và dễ gây nhầm lẫn. Vì vậy, bạn nên hạn chế sử dụng biến toàn cầu và thay vào đó truyền các biến như tham số cho hàm khi có thể. Tuy nhiên, trong một số trường hợp, biến toàn cầu có thể hữu ích, chẳng hạn như khi bạn cần chia sẻ dữ liệu giữa nhiều hàm hoặc tệp.

Kết luận

Biến toàn cầu trong PHP là một công cụ mạnh mẽ, nhưng cần được sử dụng một cách hợp lý để tránh làm phức tạp mã nguồn của bạn. Luôn cố gắng đảm bảo rằng mã của bạn dễ hiểu và dễ bảo trì.