为了账号安全,请及时绑定邮箱和手机立即绑定

参考:什么是变量范围,哪些变量可以从哪里访问,什么是“未定义变量”错误?

参考:什么是变量范围,哪些变量可以从哪里访问,什么是“未定义变量”错误?

PHP
SMILET 2019-05-20 16:53:03
什么是PHP中的“变量范围”?一个.php文件中的变量是否可以在另一个中访问?为什么我有时会得到“未定义的变量”错误?
查看完整描述

3 回答

?
慕斯709654

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-urlencodedmultipart/form-dataMIME类型在HTTP POST请求中传递的值

  • $_FILES- 使用multipart/form-dataMIME类型在HTTP POST请求中传递的文件

  • $_COOKIE - 随当前请求传递的Cookie

  • $_SESSION - PHP内部存储的会话变量

  • $_REQUEST- 通常是$_GET和的组合$_POST,但有时候$_COOKIES。内容由确定的request_order指令php.ini

  • $_ENV - 当前脚本的环境变量


查看完整回答
反对 回复 2019-05-20
  • 3 回答
  • 0 关注
  • 570 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信