PHP超级全局变量
超级全局变量有9个
特点是全局可用!
页面到处都能访问到这个变量
$_get获得的是浏览器地址栏过来的数据,或者表单get方式提交的数据
$_post获得的是表单post方式提交的数据
$_request默认情况(具体情况要看php.ini的配置)获得的是既包含post过来的值,也包含get方式获得的值
如下例子:2222.html上有个表单,提交给2222.php这个文件
<html> <head> <title>实验get_post的区别</title> <meta charset="utf-8"/> </head> <body> <!--本文件2222.html提交数据--> <form action="2222.php?id=5678" method="post"> <input type="text" name="username" value="" /> <input type="submit" value="提交"/> </form> </body> </html>
1 <?php 2 header("content-type:text/html;charset=utf-8"); 3 echo '<pre>'; 4 5 //2222.php 接收数据并显示出来 6 print_r($_get); 7 print_r($_post); 8 print_r($_request); 9 10 echo '<pre>'; 11 ?>
最终的结果,可以看到,$_request这个数组是$_get和$_post合并起来的
如果让get和post中有重名的呢?
修改2222.html中<form action="2222.php?id=5678" method="post">这句,改为<form action="2222.php?id=5678&username=李四" method="post">
再提交会发生什么呢?
如下,找到php配置文件,搜索 request_order
修改为pg,保存,重启apache,实验一下,就相反了,不细说。
$_env
打印一下$_env,print_r($_env); 看看出来的是什么?
发现,没有反应!空白。原来,考虑到信息安全问题,php的配置文件php.ini中,variables_order控制着$_env的显示
$_env里面是操作系统呀什么的这些信息
$_server 打印出来如下:
array ( [http_host] => localhost [http_user_agent] => mozilla/5.0 (windows nt 6.1; win64; x64; rv:66.0) gecko/20100101 firefox/66.0 [http_accept] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 [http_accept_language] => zh-cn,zh;q=0.8,zh-tw;q=0.7,zh-hk;q=0.5,en-us;q=0.3,en;q=0.2 [http_accept_encoding] => gzip, deflate [http_connection] => keep-alive [http_upgrade_insecure_requests] => 1 [http_cache_control] => max-age=0 [path] => c:\windows\system32;c:\windows;c:\windows\system32\wbem;c:\windows\system32\windowspowershell\v1.0\;c:\program files\nodejs\;c:\program files\git\cmd; [systemroot] => c:\windows [comspec] => c:\windows\system32\cmd.exe [pathext] => .com;.exe;.bat;.cmd;.vbs;.vbe;.js;.jse;.wsf;.wsh;.msc [windir] => c:\windows [server_signature] => [server_software] => apache/2.4.23 (win32) openssl/1.0.2j php/5.4.45 [server_name] => localhost [server_addr] => ::1 [server_port] => 80 [remote_addr] => ::1 [document_root] => e:/xxxx [request_scheme] => http [context_prefix] => [context_document_root] => e:/xxxx [server_admin] => admin@phpstudy.net [script_filename] => e:/xxxx/2222.php [remote_port] => 2479 [gateway_interface] => cgi/1.1 [server_protocol] => http/1.1 [request_method] => get [query_string] => [request_uri] => /2222.php [script_name] => /2222.php [php_self] => /2222.php [request_time_float] => 1556588895.594 [request_time] => 1556588895 )
$globals — 引用全局作用域中可用的全部变量
它就是个快捷方式集合,把在全局作用域中的全部变量(除了$_env)都放在里面了。
$aaa = 123456; print_r($globals);
上一篇: PHP安全编程之加密功能
下一篇: 什么是单点登录(SSO)