27/08/2018, 22:43

Biến siêu toàn cầu trong PHP

PHP Biến siêu toàn cầu trong PHP đã được giới thiệu trong PHP 4.1.0, và được xây dựng trong các biến mà luôn có thể được được sử dụng trong tất cả các phạm vi. Biến siêu toàn cầu trong PHP – Superglobals Một số biến được định nghĩa trước trong PHP là “superglobals& ...

PHP

Biến siêu toàn cầu trong PHP đã được giới thiệu trong PHP 4.1.0, và được xây dựng trong các biến mà luôn có thể được được sử dụng trong tất cả các phạm vi.

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

Một số biến được định nghĩa trước trong PHP là “superglobals”, có nghĩa là chúng luôn có thể truy cập, bất kể phạm vi – và bạn có thể truy cập chúng từ bất kỳ hàm, lớp hoặc tệp nào mà không phải thực hiện bất kỳ điều gì đặc biệt.

Các biến superglobal trong PHP là:

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

Bài này chúng ta sẽ học một số superglobals, và phần còn lại sẽ được giải thích trong các chương sau.

PHP $GLOBALS

$GLOBALS là một biến siêu toàn cầu trong PHP được sử dụng để truy cập các biến toàn cầu từ bất kỳ đâu trong kịch bản lệnh PHP (cũng từ bên trong các hàm hoặc các phương thức).

PHP lưu trữ tất cả các biến toàn cầu trong một mảng gọi là $GLOBALS[index]. Các chỉ số là tên của biến.

Ví dụ dưới đây cho thấy cách sử dụng biến siêu toàn cầu $GLOBALS:

<?php 
$x = 75;
$y = 25; 

function addition() {
    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}

addition();
echo $z;
?>

Kết quả:

100

Trong ví dụ trên, vì $z là một biến của mảng $GLOBALS, nên nó cũng có thể truy cập từ bên ngoài hàm!

PHP $ _SERVER

$ _SERVER là một biến siêu toàn cầu trong PHP chứa thông tin về các tiêu đề, đường dẫn và vị trí tập lệnh.

Ví dụ bên dưới cho thấ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_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

Kết quả:

/php/bien-server.php
localhost
localhost
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
/php/bien-server.php

Bảng sau đây liệt kê các phần tử quan trọng nhất có thể chuyền vào $_SERVER:

Phần tử / Mã Mô tả
$ _ SERVER [‘PHP_SELF’] Trả về tên file của tập lệnh hiện đang thực thi
$ _ SERVER [‘GATEWAY_INTERFACE’] Trả về phiên bản của CGI máy chủ được sử dụng
$ _ SERVER [‘SERVER_ADDR’] Trả về địa chỉ IP của máy chủ lưu trữ
$ _ SERVER [‘SERVER_NAME’] Trả về tên của máy chủ lưu trữ (chẳng hạn như viettuts.vn)
$ _ SERVER [‘SERVER_SOFTWARE’] Trả về chuỗi nhận dạng máy chủ (chẳng hạn như Apache/2.2.24)
$ _ SERVER [‘SERVER_PROTOCOL’] Trả về tên và phiên bản giao thức thông tin (chẳng hạn như HTTP/1.1)
$ _ SERVER [‘REQUEST_METHOD’] Trả về phương thức request được sử dụng để truy cập trang (chẳng hạn như POST)
$ _ SERVER [‘REQUEST_TIME’] Trả về timestamp bắt đầu yêu cầu (chẳng hạn như 1377687496)
$ _ SERVER [‘QUERY_STRING’] Trả về chuỗi truy vấn nếu trang được truy cập qua chuỗi truy vấn
$ _ SERVER [‘HTTP_ACCEPT’] Trả về Accept header từ request hiện tại
$ _ SERVER [‘HTTP_ACCEPT_CHARSET’] Trả về Accept_Charset header từ request hiện tại (chẳng hạn như utf-8, ISO-8859-1)
$ _ SERVER [‘HTTP_HOST’] Trả về Host header từ request 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ả user-agents hỗ trợ nó)
$ _ SERVER [‘HTTPS’] Tập lệnh được truy vấn thông qua giao thức HTTP bảo mật
$ _ SERVER [‘REMOTE_ADDR’] Trả về địa chỉ IP từ nơi người dùng đang xem trang hiện tại
$ _ SERVER [‘REMOTE_HOST’] Trả về tên máy chủ lưu trữ từ nơi người dùng đang xem trang hiện tại
$ _ SERVER [‘REMOTE_PORT’] Trả về port đang được sử dụng trên máy của người dùng để giao tiếp với máy chủ web
$ _ SERVER [‘SCRIPT_FILENAME’] Trả về tên đường dẫn tuyệt đối của tập lệnh hiện đang thực thi
$ _ SERVER [‘SERVER_ADMIN’] Trả về giá trị được đưa ra cho chỉ thị SERVER_ADMIN trong tệp cấu hình máy chủ web (nếu tập lệnh của bạn chạy trên máy chủ ảo, nó sẽ là giá trị được xác định cho máy chủ ảo đó)
$ _ SERVER [‘SERVER_PORT’] Trả về port trên máy chủ đang được máy chủ web sử dụng cho giao tiếp (như 80)
$ _ SERVER [‘SERVER_SIGNATURE’] Trả về phiên bản máy chủ và tên máy chủ ảo được thêm vào các trang do máy chủ tạo
$ _ SERVER [‘PATH_TRANSLATED’] Trả về đường dẫn dựa trên hệ thống file cho tập lệnh hiện tại
$ _ SERVER [‘SCRIPT_NAME’] Trả về đường dẫn của tập lệnh hiện tại
$ _ SERVER [‘SCRIPT_URI’] Trả về URI của trang hiện tại

PHP $ _REQUEST

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

PHP
0