Các biến superglobals trong PHP

Đây là bài 14/53 bài của series môn học Lập trình Web PHP

Superglobals là những biến được xây dựng sẵn trong PHP (built-in variables). Những biến này có thể được truy cập và sử dụng ở bất cứ phạm vi (scope) nào. Trong PHP, có những biến superglobals là:

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

Trong bài này, chúng ta sẽ tìm hiểu cách sử dụng các superglobals trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

1. Biến $GLOBALS trong PHP

PHP lưu trữ các biến global trong một mảng (array) là $GLOBALS['name']. Trong đó, name là tên của biến global.

<?php
// global variables
$x = 1;
$y = 5;
function welcome() {
    // access globale variables
    // with global keyword
    $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
welcome();
// output 6
echo $y;
?>

2. Biến $_SERVER trong PHP

Biến $_SERVER là một mảng (array), giúp lưu trữ các thông tin máy chủ và môi trường thực thi. Những thông tin này có thể là tiêu đề (headers), đường dẫn (paths) và vị trí file PHP (script locations).

<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

Các bạn có thể xem thêm các thông tin mà biến $_SERVER lưu trữ tại $_SERVER variable.

3. Biến $_REQUEST trong PHP

Biến $ _REQUEST được sử dụng để thu thập dữ liệu sau khi được gửi đi từ HTML form.

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    Name: <input type="text" name="fname">
    Age: <input type="text" name="fage">
    <input type="submit">
</form>

<?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        // collect value of input field
        $name = $_REQUEST['fname'];
        $age = $_REQUEST['fage'];
        if (empty($name)) {
            echo "Name is empty";
        } else {
            echo $name."<br>";
        }
        if (empty($age)) {
            echo "Age is empty";
        } else {
            echo $age;
        }
    }
?>
</body>
</html>

4. Biến $_POST trong PHP

Biến $ _POST được sử dụng để thu thập dữ liệu của HTML form sau khi được gửi đi từ HTML form với method = “post”.

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fname">
  Age: <input type="text" name="fage">
  <input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  // collect value of input field
  $name = $_POST['fname'];
  $age = $_POST['fage'];
  if (empty($name)) {
    echo "Name is empty";
  } else {
    echo $name."<br>";
  }
  if (empty($age)) {
    echo "Age is empty";
  } else {
    echo $age;
  }
}
?>

</body>
</html>

5. Biến $_GET trong PHP

Biến $ _ GET được sử dụng để thu thập dữ liệu của HTML form sau khi được gửi đi từ HTML form với method = “get”.

<html>
<body>

<form method="get" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fname">
  Age: <input type="text" name="fage">
  <input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "GET") {
  // collect value of input field
  $name = $_GET['fname'];
  $age = $_GET['fage'];
  if (empty($name)) {
    echo "Name is empty";
  } else {
    echo $name."<br>";
  }
  if (empty($age)) {
    echo "Age is empty";
  } else {
    echo $age;
  }
}
?>

</body>
</html>

Sau khi submit với method = “get” thì chúng ta được URL có dạng http://localhost/gochocit/index.php?fname=23&fage=John.

6. Biến $_ENV trong PHP

Biến $_ENV trong PHP là một mảng kết hợp (associative array), giúp lưu trữ các biến môi trường (environment variables) của file PHP hiện tại. Lưu ý: Biến $_ENV đôi khi là một mảng không có giá trị nào.

PHP có hỗ trợ hàm getenv() để truy xuất danh sách tất cả các biến môi trường trên máy chủ. Đoạn code bên dưới giúp xuất ra tất cả biến môi trường được lấy từ hàm getenv().

<?php
$arr=getenv();
foreach ($arr as $key=>$val)
echo "$key=>$val"."<br>";
// get value of environment variable PATH
echo "Path: " . getenv("PATH");
?>

Chúng ta cũng có thể sử dụng hàm putenv() để tạo ra một biến môi trường mới.

<?php
putenv("PHP_TEMPUSER=GUEST");
echo "Temp user: " . getenv("PHP_TEMPUSER");
?>

Bài này đã trình bày cách sử dụng một số superglobals phổ biến trong PHP. Các superglobals khác như $_FILES, $_COOKIE, $_SESSION sẽ được giới thiệu ở những bài sau của series môn học Lập trình Web PHP.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Xây dựng và sử dụng hàm (function) trong PHPCách sử dụng câu lệnh include, require trong PHP >>
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.