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-dataMIME类型在HTTP POST请求中传递的值$_FILES- 使用multipart/form-dataMIME类型在HTTP POST请求中传递的文件$_COOKIE- 随当前请求传递的Cookie$_SESSION- PHP内部存储的会话变量$_REQUEST- 通常是$_GET和的组合$_POST,但有时候$_COOKIES。内容由确定的request_order指令在php.ini。$_ENV- 当前脚本的环境变量
- 3 回答
- 0 关注
- 627 浏览
添加回答
举报
