Biến toàn cục toàn cục - Biến toàn cục siêu toàn cục

Biến toàn cục siêu toàn cục được giới thiệu trong PHP 4.1.0, chúng luôn có sẵn trong toàn bộ phạm vi.

Biến toàn cục toàn cục - Biến toàn cục siêu toàn cục

Nhiều biến được định nghĩa sẵn trong PHP là 'siêu toàn cục', điều này có nghĩa là chúng có thể được sử dụng trong toàn bộ phạm vi của một script. Bạn không cần thực hiện lệnh global $variable; để truy cập chúng trong hàm hoặc phương pháp.

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

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

Chương này sẽ giới thiệu một số biến toàn cục siêu toàn cục và sẽ giải thích các biến toàn cục siêu toàn cục khác trong các chương sau.

$GLOBALS — Tham chiếu đến tất cả các biến có sẵn trong phạm vi toàn cục

Biến toàn cục $GLOBALS này được sử dụng để truy cập các biến toàn cục ở bất kỳ vị trí nào trong script PHP (bạn có thể từ hàm hoặc phương pháp).

PHP lưu trữ tất cả các biến toàn cục trong mảng có tên là $GLOBALS[index]. Tên của biến là khóa của mảng.

Dưới đây là ví dụ minh họa cách sử dụng biến toàn cục $GLOBALS:

Ví dụ

<?php 
$x = 75; 
$y = 25;
function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
addition(); 
echo $z; 
?>

Chạy ví dụ

Trong ví dụ trên, vì z là biến trong mảng $GLOBALS, nên bạn có thể truy cập nó bên ngoài hàm.

PHP $_SERVER

Biến toàn cục $_SERVER này lưu trữ thông tin về các đầu báo, đường dẫn và vị trí của script.

Dưới đây là ví dụ minh họa cách sử dụng một số yếu tố trong $_SERVER:

Ví dụ

<?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'];
?>

Chạy ví dụ

Bảng dưới đây liệt kê các thành phần quan trọng nhất mà bạn có thể truy cập trong $_SERVER:

Thành phần/mã Mô tả
$_SERVER['PHP_SELF'] Trả về tên tệp của script đang được thực thi.
$_SERVER['GATEWAY_INTERFACE'] Trả về phiên bản của quy định CGI được sử dụng bởi máy chủ.
$_SERVER['SERVER_ADDR'] Trả về địa chỉ IP của máy chủ đang chạy script hiện tại.
$_SERVER['SERVER_NAME'] Trả về tên máy chủ của máy chủ chạy script hiện tại (ví dụ: www.codew3c.com).
$_SERVER['SERVER_SOFTWARE'] Trả về chuỗi nhận dạng của máy chủ (ví dụ: Apache/2.2.24).
$_SERVER['SERVER_PROTOCOL'] Trả về tên và phiên bản của giao thức truyền thông được sử dụng để yêu cầu trang (ví dụ: “HTTP/1.0”)
$_SERVER['REQUEST_METHOD'] Trả về phương thức yêu cầu được sử dụng để truy cập trang (ví dụ: POST).
$_SERVER['REQUEST_TIME'] Trả về dấu thời gian của yêu cầu bắt đầu (ví dụ: 1577687494).
$_SERVER['QUERY_STRING'] Trả về chuỗi truy vấn, nếu bạn truy cập trang này qua chuỗi truy vấn.
$_SERVER['HTTP_ACCEPT'] Trả về tiêu đề yêu cầu từ yêu cầu hiện tại.
$_SERVER['HTTP_ACCEPT_CHARSET'] Trả về tiêu đề Accept_Charset từ yêu cầu hiện tại (ví dụ: utf-8, ISO-8859-1).
$_SERVER['HTTP_HOST'] Trả về tiêu đề Host từ yêu cầu hiện tại.
$_SERVER['HTTP_REFERER'] Trả về URL đầy đủ của trang hiện tại (không đáng tin cậy, vì không phải tất cả các trình đại diện người dùng đều hỗ trợ).
$_SERVER['HTTPS'] Điều tra có thông qua giao thức HTTP an toàn không.
$_SERVER['REMOTE_ADDR'] Trả về địa chỉ IP của người dùng đang duyệt trang hiện tại.
$_SERVER['REMOTE_HOST'] Trả về tên máy của người dùng đang duyệt trang hiện tại.
$_SERVER['REMOTE_PORT'] Trả về cổng mà máy khách sử dụng để kết nối với máy chủ web.
$_SERVER['SCRIPT_FILENAME'] Trả về đường dẫn tuyệt đối của script đang được thực thi.
$_SERVER['SERVER_ADMIN'] Giá trị này chỉ ra tham số SERVER_ADMIN trong tệp cấu hình máy chủ Apache.
$_SERVER['SERVER_PORT'] Cổng mà máy chủ web sử dụng. Giá trị mặc định là “80”.
$_SERVER['SERVER_SIGNATURE'] Trả về phiên bản của máy chủ và tên máy chủ ảo.
$_SERVER['PATH_TRANSLATED'] Đường dẫn cơ bản của tệp hệ thống (không phải thư mục gốc tài liệu).
$_SERVER['SCRIPT_NAME'] Trả về đường dẫn của script hiện tại.
$_SERVER['SCRIPT_URI'] Trả về URI của trang hiện tại.

PHP $_REQUEST

PHP $_REQUEST được sử dụng để thu thập dữ liệu biểu mẫu sau khi gửi biểu mẫu HTML.

Dưới đây là một ví dụ về một biểu mẫu chứa trường nhập liệu và nút gửi. Khi người dùng nhấp vào nút gửi để gửi dữ liệu biểu mẫu, dữ liệu biểu mẫu sẽ được gửi đến tệp được chỉ định bởi thuộc tính action của thẻ <form>. Trong ví dụ này, chúng tôi chỉ định tệp本身 để xử lý dữ liệu biểu mẫu. Nếu bạn cần sử dụng một tệp PHP khác để xử lý dữ liệu biểu mẫu, hãy thay đổi thành tên tệp bạn chọn. Sau đó, chúng ta có thể sử dụng biến toàn cục $_REQUEST để thu thập giá trị của trường input:

Ví dụ

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

Chạy ví dụ

PHP $_POST

PHP $_POST được sử dụng rộng rãi để thu thập dữ liệu biểu mẫu sau khi gửi biểu mẫu HTML với phương thức "post". $_POST cũng thường được sử dụng để truyền biến.

Dưới đây là một ví dụ về một biểu mẫu chứa trường nhập liệu và nút gửi. Khi người dùng nhấp vào nút gửi để gửi dữ liệu, dữ liệu biểu mẫu sẽ được gửi đến tệp được chỉ định bởi thuộc tính action của thẻ <form>. Trong ví dụ này, chúng tôi chỉ định tệp本身 để xử lý dữ liệu biểu mẫu. Nếu bạn muốn sử dụng một trang PHP khác để xử lý dữ liệu biểu mẫu, hãy thay đổi thành tên tệp bạn chọn. Sau đó, chúng ta có thể sử dụng biến toàn cục $_POST để thu thập giá trị của trường nhập liệu:

Ví dụ

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

Chạy ví dụ

PHP $_GET

PHP $_GET cũng có thể được sử dụng để thu thập dữ liệu biểu mẫu được gửi sau khi biểu mẫu HTML (method="get") được gửi.

$_GET cũng có thể thu thập dữ liệu được gửi trong URL.

Giả sử chúng ta có một trang web chứa các liên kết có tham số:

<html>
<body>
<a href="test_get.php?subject=PHP&web=codew3c.com">Kiểm tra $GET</a>
</body>
</html>

Khi người dùng nhấp vào liên kết "Kiểm tra $GET", các tham số "subject" và "web" được gửi đến "test_get.php", sau đó bạn có thể truy cập các giá trị này qua $_GET trong "test_get.php".

Ví dụ dưới đây là mã trong tệp "test_get.php":

Ví dụ

<html>
<body>
<?php 
echo "Trong " . $_GET['web'] . " học " . $_GET['subject'];
?>
</body>
</html>

Chạy ví dụ

Lưu ý:Bạn sẽ trong PHP biểu mẫu Trong phần này, bạn sẽ học thêm về $_POST và $_GET.