在php中有哪些常用的超全局变量
原创PHP中超全局变量的概述
在PHP中,超全局变量是一种特殊类型的变量,它们在脚本中的任何地方都可以直接访问,不需要任何特别的声明或初始化。这些变量由PHP引擎自动设置,并在整个PHP脚本的执行期间一直有效。以下是一些在PHP中常用的超全局变量。
$_GET
$_GET 变量用于收集来自 URL 查询字符串的变量。当用户通过URL提交数据时,这些数据可以通过$_GET变量获取。
// URL 形式: index.php?name=John&age=30
$name = $_GET['name'];
$age = $_GET['age'];
echo 'Name: ' . $name . '
';echo 'Age: ' . $age;
$_POST
$_POST 变量用于收集表单提交的数据,尤其是当表单的 method 属性设置为 POST 时。这些数据不是暴露在URL中的,故而比$_GET更加稳固。
// 表单数据通过POST方法提交
$name = $_POST['name'];
$age = $_POST['age'];
echo 'Name: ' . $name . '
';echo 'Age: ' . $age;
$_REQUEST
$_REQUEST 变量包含了$_GET、$_POST和$_COOKIE变量的内容。这个变量可以用于收集来自GET或POST方法的表单数据。
// 可以接收来自GET或POST的数据
$name = $_REQUEST['name'];
$age = $_REQUEST['age'];
echo 'Name: ' . $name . '
';echo 'Age: ' . $age;
$_COOKIE
$_COOKIE 变量用于存储和访问来自客户端浏览器的 cookie 数据。
// 设置cookie后可以使用$_COOKIE变量访问
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
if (isset($_COOKIE[$cookie_name])) {
echo "Cookie '" . $cookie_name . "' is set!
";echo "Value is: " . $_COOKIE[$cookie_name];
}
$_SERVER
$_SERVER 变量包含了服务器和执行环境的信息,例如头部信息、路径和脚本位置等。
// 获取服务器名称
$server_name = $_SERVER['SERVER_NAME'];
echo 'Server Name: ' . $server_name;
// 获取脚本请求的URI
$request_uri = $_SERVER['REQUEST_URI'];
echo 'Request URI: ' . $request_uri;
$_ENV
$_ENV 变量包含了服务器端的环境变量。
// 获取某个环境变量
$environment = $_ENV['ENVIRONMENT'];
echo 'Environment: ' . $environment;
$_FILES
$_FILES 变量用于收集上传文件的信息。
// 处理上传的文件
$upload_file = $_FILES['file']['name'];
$upload_temp_file = $_FILES['file']['tmp_name'];
// 处理上传文件...
$_SESSION
$_SESSION 变量用于存储和访问有关会话的数据,需要在脚本起始处使用session_start()函数来启动会话。
session_start();
// 设置和获取会话变量
$_SESSION['name'] = 'John';
echo 'Session name: ' . $_SESSION['name'];
在使用这些超全局变量时,需要注意数据的稳固性和有效性,特别是在处理用户输入和文件上传时,要严格过滤和验证数据,防止恶意攻击。