php中的$\u POST真的是超全局的吗?

php中的$\u POST真的是超全局的吗?,php,scope,superglobals,Php,Scope,Superglobals,我为什么要问这个?我正在努力理解php的超全局概念。。。$\u POST的数组数据/变量仅对表单发回的文件可用 网站或应用程序中的任何其他文件都无法使用这些文件 那么为什么$\u POST是一个超全局变量,它的直观含义应该是指任何地方都可用的任何变量,包括网站/应用程序中未定义的所有文件 有人能给我解释一下这背后的逻辑吗 我特别希望找到一种直接的方法(即简单地调用/声明变量,而不是间接的方法,如包含变量的文件等),在网站/应用程序中的所有文件中共享变量。您对superglobal的直观定义与PH

我为什么要问这个?我正在努力理解php的超全局概念。。。$\u POST的数组数据/变量仅对表单发回的文件可用

网站或应用程序中的任何其他文件都无法使用这些文件

那么为什么$\u POST是一个超全局变量,它的直观含义应该是指任何地方都可用的任何变量,包括网站/应用程序中未定义的所有文件

有人能给我解释一下这背后的逻辑吗


我特别希望找到一种直接的方法(即简单地调用/声明变量,而不是间接的方法,如包含变量的文件等),在网站/应用程序中的所有文件中共享变量。

您对superglobal的直观定义与PHP使用该术语的方式不匹配。PHP中“superglobal”的定义是,该变量在脚本中的所有作用域中都可用。普通全局变量和超全局变量之间的唯一区别在于,您不必在函数或方法中使用
global
关键字来访问它们


你似乎是在一种可能的误解下运作的。PHP脚本不会持久化。他们只为一个请求而活,那么他们的工作环境就会被破坏。你不能像我想的那样在多个脚本之间“共享数据”。我看不出你这里的核心问题与你之前的问题有什么不同,之前的问题涉及在请求之间使用会话来持久化数据。“变量”和它的“值”是两个不同的东西@DrDan是的,我试过测试它,它没有抛出错误,但是值本身不可用。。。这违背了作为一个真正的全局变量的目的。。。谢谢你抽出时间来解释这件事。。。它确实帮助我更好地理解了这个概念……你想分享哪些数据?配置,可能?
$\u POST
已定义,但如果没有任何内容被发回,则包含空数组,除非从配置中禁用它。是的,我同意,尽管会话/Cookie变量是最接近该概念的变量,因为它们可用于应用程序中的任何文件。。。我只是在寻找会话和cookie以外的其他方法……PHP脚本不是持久的,它们只运行一次,然后就结束了。会话数据和cookie是持久的。会话数据存储在磁盘上,每个请求都会发送cookie数据。如果需要在正在运行的脚本中获取或发布可用数据,则必须在HTTP请求中发送数据。