php的超级变量都有哪些?
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
(注意要区分大小写,php是一个区分大小写的语言,这个题上网一收全是,我来教大家如何更方便记忆)
这些超级变量的作用:
先分个组:
$_POST
$_GET
$_REQUEST
$_FILES
一组
这一组主要是接受和存储前台发到后台的值,大家可以参照我想一篇文章。
$_FILES主要针对上传文件的,大家可以再往前翻阅上传图片的博文。
$_COOKIE
$_SESSION一组。
php代码:
echo 'SESSION';
echo '<br>';
print_r($_SESSION);
echo '<br>';
echo 'cookie';
echo '<br>';
print_r($_COOKIE);
结果:
先存一个session
session_start();
$_SESSION['user'] = 'caption';
echo 'SESSION';
echo '<br>';
print_r($_SESSION);
echo '<br>';
echo 'cookie';
echo '<br>';
print_r($_COOKIE);
结果:
事实上当session里面存了一个值的时候,cookie中要存一个sessionid的,这一次没有打印出来。
我们存一个cookie并删除session输入的值的代码
session_start();
// $_SESSION['user'] = 'caption';
setcookie('user','ironMan');
echo 'SESSION';
echo '<br>';
print_r($_SESSION);
echo '<br>';
echo 'cookie';
echo '<br>';
print_r($_COOKIE);
结果:
sessionid出来了。
现在我们来演示一下如何删除session和cookie的
session_start();
// $_SESSION['user'] = 'caption';
// setcookie('user','ironMan');
unset($_SESSION['user']);
setcookie('user',"ironMan",-1);
echo 'SESSION';
echo '<br>';
print_r($_SESSION);
echo '<br>';
echo 'cookie';
echo '<br>';
print_r($_COOKIE);
结果:
我只是删除cookie里面的user,另一个没动。
$_ENV //包含服务器端环境变量的数组
$_SERVER // 是一个包含诸如头部(headers)、路径(paths)和脚本位置(script locations)的数组。数组的实体由 web 服务器创建。不能保证所有的服务器都能产生所有的信息;服务器可能忽略了一些信息,或者产生了一些未在下面列出的新的信息。
一组
print_r($_SERVER);
echo '<br>';
print_r($_SERVER);
结果:
Array
(
[PATH] => C:\Program Files\Java\jdk-13.0.1\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\python\Scripts\;D:\python\
[SYSTEMROOT] => C:\Windows
[COMSPEC] => C:\Windows\system32\cmd.exe
[PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
[WINDIR] => C:\Windows
[PHPRC] => D:/phpstudy/run/phpstudy_pro/Extensions/php/php7.3.4nts
[_FCGI_SHUTDOWN_EVENT_] => 8568
[SCRIPT_NAME] => /controller/index.php
[REQUEST_URI] => /controller/index.php
[QUERY_STRING] =>
[REQUEST_METHOD] => POST
[SERVER_PROTOCOL] => HTTP/1.1
[GATEWAY_INTERFACE] => CGI/1.1
[REMOTE_PORT] => 55739
[SCRIPT_FILENAME] => D:/phpstudy/run/phpstudy_pro/WWW/www.yaya.com/controller/index.php
[SERVER_ADMIN] => admin@example.com
[CONTEXT_DOCUMENT_ROOT] => D:/phpstudy/run/phpstudy_pro/WWW/www.yaya.com
[CONTEXT_PREFIX] =>
[REQUEST_SCHEME] => http
[DOCUMENT_ROOT] => D:/phpstudy/run/phpstudy_pro/WWW/www.yaya.com
[REMOTE_ADDR] => 127.0.0.1
[SERVER_PORT] => 80
[SERVER_ADDR] => 127.0.0.1
[SERVER_NAME] => www.yaya.com
[SERVER_SOFTWARE] => Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a
[SERVER_SIGNATURE] =>
[SystemRoot] => C:\Windows
[HTTP_COOKIE] => user=ironMan; PHPSESSID=hbsvsncoavtl0m4o9gb8djek8m
[HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.9
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_REFERER] => http://www.yaya.com/
[CONTENT_TYPE] => application/x-www-form-urlencoded; charset=UTF-8
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36
[HTTP_X_REQUESTED_WITH] => XMLHttpRequest
[HTTP_ORIGIN] => http://www.yaya.com
[HTTP_ACCEPT] => application/json, text/javascript, */*; q=0.01
[CONTENT_LENGTH] => 38
[HTTP_CONNECTION] => close
[HTTP_HOST] => www.yaya.com
[FCGI_ROLE] => RESPONDER
[PHP_SELF] => /controller/index.php
[REQUEST_TIME_FLOAT] => 1576835361.0405
[REQUEST_TIME] => 1576835361
)
<br>Array
(
[PATH] => C:\Program Files\Java\jdk-13.0.1\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\python\Scripts\;D:\python\
[SYSTEMROOT] => C:\Windows
[COMSPEC] => C:\Windows\system32\cmd.exe
[PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
[WINDIR] => C:\Windows
[PHPRC] => D:/phpstudy/run/phpstudy_pro/Extensions/php/php7.3.4nts
[_FCGI_SHUTDOWN_EVENT_] => 8568
[SCRIPT_NAME] => /controller/index.php
[REQUEST_URI] => /controller/index.php
[QUERY_STRING] =>
[REQUEST_METHOD] => POST
[SERVER_PROTOCOL] => HTTP/1.1
[GATEWAY_INTERFACE] => CGI/1.1
[REMOTE_PORT] => 55739
[SCRIPT_FILENAME] => D:/phpstudy/run/phpstudy_pro/WWW/www.yaya.com/controller/index.php
[SERVER_ADMIN] => admin@example.com
[CONTEXT_DOCUMENT_ROOT] => D:/phpstudy/run/phpstudy_pro/WWW/www.yaya.com
[CONTEXT_PREFIX] =>
[REQUEST_SCHEME] => http
[DOCUMENT_ROOT] => D:/phpstudy/run/phpstudy_pro/WWW/www.yaya.com
[REMOTE_ADDR] => 127.0.0.1
[SERVER_PORT] => 80
[SERVER_ADDR] => 127.0.0.1
[SERVER_NAME] => www.yaya.com
[SERVER_SOFTWARE] => Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a
[SERVER_SIGNATURE] =>
[SystemRoot] => C:\Windows
[HTTP_COOKIE] => user=ironMan; PHPSESSID=hbsvsncoavtl0m4o9gb8djek8m
[HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.9
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_REFERER] => http://www.yaya.com/
[CONTENT_TYPE] => application/x-www-form-urlencoded; charset=UTF-8
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36
[HTTP_X_REQUESTED_WITH] => XMLHttpRequest
[HTTP_ORIGIN] => http://www.yaya.com
[HTTP_ACCEPT] => application/json, text/javascript, */*; q=0.01
[CONTENT_LENGTH] => 38
[HTTP_CONNECTION] => close
[HTTP_HOST] => www.yaya.com
[FCGI_ROLE] => RESPONDER
[PHP_SELF] => /controller/index.php
[REQUEST_TIME_FLOAT] => 1576835361.0405
[REQUEST_TIME] => 1576835361
)
下面主要说明一下global和$GLOBALS的区别:
$GLOBALS[‘var’]是外部的全局变量本身,而global
v
a
r
是
外
部
var是外部
var是外部var的同名引用或者指针,也就是说global在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量,而$GLOBALS[]确确实实调用的是外部的变量,函数内外会始终保持一致。
大家参照这篇博文