PHP Variables Scope

Phạm vi biến trong PHP

Trong PHP, phạm vi của biến (variable scope) xác định nơi mà biến có thể được truy cập và sử dụng. Có ba phạm vi chính cho biến trong PHP: phạm vi toàn cục (global), phạm vi cục bộ (local) và phạm vi tĩnh (static).

1. Phạm vi toàn cục (Global Scope)

Biến toàn cục được định nghĩa bên ngoài mọi hàm và có thể được sử dụng ở bất kỳ đâu trong tập tin PHP. Để sử dụng biến toàn cục bên trong một hàm, bạn cần phải khai báo biến đó là global bằng cách sử dụng từ khóa global.

$globalVar = "Tôi là biến toàn cục";

function testGlobal() {
    global $globalVar;
    echo $globalVar;
}

testGlobal(); // Xuất: Tôi là biến toàn cục

2. Phạm vi cục bộ (Local Scope)

Biến cục bộ là biến được định nghĩa bên trong một hàm và chỉ có thể được sử dụng trong hàm đó. Khi hàm hoàn tất, biến cục bộ sẽ không còn tồn tại.

function testLocal() {
    $localVar = "Tôi là biến cục bộ";
    echo $localVar;
}

testLocal(); // Xuất: Tôi là biến cục bộ
// echo $localVar; // Lỗi: Biến không xác định

3. Phạm vi tĩnh (Static Scope)

Biến tĩnh giữ giá trị của nó giữa các lần gọi hàm. Bạn có thể sử dụng từ khóa static để định nghĩa biến tĩnh trong một hàm.

function testStatic() {
    static $count = 0;
    $count++;
    echo $count;
}

testStatic(); // Xuất: 1
testStatic(); // Xuất: 2
testStatic(); // Xuất: 3

4. Phạm vi biến trong mảng và đối tượng

Khi bạn làm việc với mảng hoặc đối tượng, phạm vi của biến cũng có thể thay đổi. Trong trường hợp này, bạn có thể truy cập biến từ các thuộc tính của đối tượng hoặc từ các phần tử của mảng.

class MyClass {
    public $myVar = "Biến của đối tượng";

    public function showVar() {
        echo $this->myVar;
    }
}

$obj = new MyClass();
$obj->showVar(); // Xuất: Biến của đối tượng

Kết luận

Hiểu rõ về phạm vi biến trong PHP là rất quan trọng để quản lý và bảo trì mã hiệu quả. Điều này giúp bạn tránh được nhiều lỗi phổ biến và làm cho mã của bạn trở nên dễ đọc hơn.