Biến toàn cục – siêu toàn cục trong PHP

Biến siêu toàn cục được giới thiệu lần đầu trong PHP phiên bản 4.1.0, nó được xây dựng để cung cấp sẵn trong mọi trường hợp.


Biến toàn cục – siêu toàn cục trong PHP

Một số biến được xác định trước trong PHP là siêu toàn cục, điều này có nghĩa là nó luôn luôn được truy cập, không giới hạn – và bạn có thể truy cập nó trong bất cứ hàm nào, lớp nào hoặc file mà không cần làm điều gì đặc biệt

Những biến siêu toàn cục trong PHP là:

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

PHP $GLOBALS

$GLOBALS là biến siêu toàn cục, được sử dụng để truy cập các biến toàn cục từ bất cứ nơi nào trong đoạn mã PHP (bao gồm cả trong hàm và phương thức)

PHP lưu trữ tất cả các biến toàn cục trong mảng là $GLOBALS[index]. Chỉ số index nắm giữ thông tin tên của biến.

Ví dụ dưới đây sẽ cho bạn thấy làm cách nào sử dụng biến siêu toàn cục $GLOBALS

<?php
$x = 6;
$y = 9;
function cong() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}cong();
echo $z; //kết quả là 15
?>

Trong ví dụ trên, từ khi z là một biến đại diện trong mảng $GLOBAL, nó có thể được truy cập bên ngoài hàm!


PHP $_SERVER

$_SERVER là biến siêu toàn cục trong PHP, nắm giữ thông tin về headers, paths và các mã lệnh cục bộ.

Ví dụ dưới đây trình bày cách sử dụng một số phần tử trong $_SERVER:

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

PHP $_REQUEST

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

Trong ví dụ bên dưới trình bày một form với một trường input và nút submit. Khi người dùng gửi dữ liệu bằng cách click vào submit, dữ liệu từ form được gửi tới file đặc biệt trong thuộc tính của action. Chúng tôi xử lý dữ liệu mà form gửi bằng chính bản thân nó, nếu bạn muốn xử lý bằng trang khác, thay đường dẫn của bạn vào. Tiếp đó, chúng tôi sử dụng biến siêu toàn cục $_REQUEST để thu thập dữ liệu từ trường input:

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

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {

// Thu thập dữ liệu từ input
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Truong ten khong duoc dien";
} else {
echo $name;
}
}
?>

</body>
</html>

Leave a Comment