3 回答
TA贡献1840条经验 获得超5个赞
我不会对这个问题发表完整的答案,因为现有的和PHP手册很好地解释了大部分问题。
但是,这是漏掉了一个主题是的超全局变量,包括常用的$_POST
,$_GET
,$_SESSION
等这些变量始终可用,在任何范围内,没有一个数组global
声明。
例如,此函数将打印出运行PHP脚本的用户的名称。该函数可以使用该变量而没有任何问题。
<?php
function test() {
echo $_ENV["user"];
}
“全局变量很糟糕”的一般规则通常在PHP中被修改为“全局变量很糟糕但超级全球变好”,只要一个人没有滥用它们。(所有这些变量都是可写的,因此如果你真的很糟糕,它们可以用来避免依赖注入。)
这些变量不能保证存在; 管理员可以通过禁用某些或所有这些variables_order
指令中php.ini
,但是这是不常见的行为。
当前超级全球的列表:
$GLOBALS
- 当前脚本中的所有全局变量$_SERVER
- 有关服务器和执行环境的信息$_GET
- 无论用于请求的HTTP方法如何,都在URL的查询字符串中传递值$_POST
- 使用application/x-www-form-urlencoded
或multipart/form-data
MIME类型在HTTP POST请求中传递的值$_FILES
- 使用multipart/form-data
MIME类型在HTTP POST请求中传递的文件$_COOKIE
- 随当前请求传递的Cookie$_SESSION
- PHP内部存储的会话变量$_REQUEST
- 通常是$_GET
和的组合$_POST
,但有时候$_COOKIES
。内容由确定的request_order
指令在php.ini
。$_ENV
- 当前脚本的环境变量
- 3 回答
- 0 关注
- 570 浏览
添加回答
举报