php超级全局变量数组(super global array),又称为php预定义数组,是由php引擎内置的,不需要开发者重新定义。 在php脚本运行时,php会自动将一些数据放在超级全局数组中。
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
php超级全局变量列表:
$_GET[] 获得以GET方法提交的变量数组
$_POST[] 获得以POST方法提交的变量数组
立即学习“PHP免费学习笔记(深入)”;
$_COOKIE[] 获取和设置当前网站的Cookie标识
$_SESSION[] 取得当前用户访问的唯一标识,以数组形式体现,如sessionid以及自定义session数据
$_ENV[] 当前php环境变量数组
$_SERVER[] 当前php服务器变量数组
$_FILES[] 上传文件时提交到当前脚本的参数值,以数组形式体现
$_REQUEST[] 包含当前脚本提交的全部请求,$_GET、$_POST、$_COOKIE的所有动作
$GLOBALS[] 包含正在执行脚本所有超级全局变量的引用内容
index.php:
<?php
/**
* 超全局数组/超全局变量
* PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。
* 在函数或方法中无需执行 global $variable; 就可以访问它们。
* 这些超全局变量是:
$_GLOBALS Global变量
$_SERVER 服务器变量
$_REQUEST request变量
$_POST HTTP POST变量
$_GET HTTP GET变量
$_FILES HTTP文件上传变量
$_ENV 环境变量
$_COOKIE HTTP Cookies
$_SESSION Session变量
*/
echo getip();
echo "<br>";
echo getip2();
echo "<br>";
/**
* 遍历$_SERVER数组
*/
foreach ($_SERVER as $key => $value){
echo "{$key} => {$value} <br>";
}
/**
* 服务器IP的函数--笔试0分的写法
*/
function getip(){
return $_SERVER['REMOTE_ADDR'];
}
/**
* 服务器IP的函数--正确写法
*/
function getip2(){
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
return $_SERVER['HTTP_CLIENT_IP'];
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}elseif (!empty($_SERVER['REMOTE_ADDR'])){
return $_SERVER['REMOTE_ADDR'];
}else{
return '未知IP';
}
}
?>
/**
* GET
*/
<br>
<a href="demo.php?action=add&id=5&name=admin">测试页面</a><br>
/**
* POST
* nickname[]下标会自增,跟数组没有区别
*/
<br>
<form action="demo.php?nick=www&psw=yyy" method="post">
nickname:<input type="text" name="nickname[]"/><br>
nickname:<input type="text" name="nickname[]"/><br>
nickname:<input type="text" name="nickname[]"/><br>
nickname:<input type="text" name="nickname[9]"/><br>
nickname:<input type="text" name="nickname[]"/><br>
nickname:<input type="text" name="nickname[x]"/><br>
nickname:<input type="text" name="nickname[]"/><br>
username:<input type="text" name="name"/><br>
age:<input type="text" name="age"/><br>
sex:<input type="text" name="sex"/><br>
<input type="submit" name="sub" value="提交">
</form><br>
<?php
/**
* $_SESSION
*
* Session 函数:
* http://www.php.cn/
*
* Session 开始、存储、终结:
* http://www.php.cn/
*/
echo '---------- $_SESSION ----------<br>';
session_start(); // 启动新会话或者重用现有会话
$_SESSION['name']="hello";
print_r($_SESSION); // 打印结果:Array ( [name] => hello )
session_unset(); // 释放所有的会话变量
session_destroy(); // 销毁当前会话中的全部数据, 但是不会重置当前会话所关联的全局变量, 也不会重置会话 cookie。
// 如果需要再次使用会话变量, 必须重新调用 session_start() 函数
session_write_close(); // 结束当前会话并存储会话数据
setcookie(session_name(),'',0,'/'); // session_name — 读取/设置会话名称
// setcookie() 函数向客户端发送一个 HTTP cookie。
session_regenerate_id(true); // 在不修改当前会话中数据的前提下使用新的 ID 替换原有会话 ID
echo "<br>";
/**
* $GLOBALS 引用全局作用域中可用的全部变量
* 一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
*/
echo '---------- $GLOBALS ----------<br>';
echo "<pre>";
print_r($GLOBALS); // 打印以上所有结果
echo "</pre>";demo.php:(配合index.php使用)
<?php
/**
* $_GET 只能接get
*/
print_r($_GET);
echo "<br>";
print_r($_GET['action']);
echo "<br>";
/**
* $_POST 只能接post
*/
print_r($_POST);
echo "<br>";
/**
* $_REQUEST 能接get和post
* 但是,容易被黑客攻击,因为什么都能接
* 所以需要get就用$_GET,需要post就用$_POST
* 忽略$_REQUEST的存在
*/
print_r($_REQUEST);
echo "<br>";
/**
* 不确定get还是post
* 可以使用下面的写法
*/
$arr = !empty($_POST) ? $_POST : $_GET;以上就是Android程序员学PHP开发(22)-超全局数组/超全局变量-PhpStorm的内容,更多相关内容请关注PHP中文网(www.php.cn)!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号