Cả hai đều dùng để truy cập / chỉnh sửa biến global bên trong function hoặc method.
$myVar = 123;
function test() {
global $myVar;
echo $myVar; // 123
}
function test() {
echo $GLOBALS['myVar']; // 123
}
➡️ Kết quả giống nhau
global $myVar$myVar =& $GLOBALS['myVar'];
$GLOBALS['myVar']global| Trường hợp | global $myVar | $GLOBALS['myVar'] |
|---|---|---|
| function thường | ✅ | ✅ |
| method trong class | ✅ | ✅ |
| closure / callback | ❌ | ✅ |
| include file | ⚠️ | ✅ |
Ví dụ closure:
$myVar = 10;
$fn = function () {
// global $myVar; ❌ không hoạt động
echo $GLOBALS['myVar']; // ✅
};
global $myVar; $myVar = 5;
👉 Khó nhìn ra đang ghi vào global
$GLOBALS['myVar'] = 5;
👉 Rõ ràng: đang đụng global
Cả hai đều có thể tạo biến global mới
function test() {
global $a;
$a = 1;
}
function test() {
$GLOBALS['b'] = 2;
}
global $myVar khi:global $wpdb)$GLOBALS['myVar'] khi:👉 Nên dùng class / DI / singleton