问题标签 [superglobals]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - $_SERVER['document_root']?
这是指向当前文件执行的目录吗?
php - PHP 的真实 SESSION 对象
编辑:(更新)
也许我的问题不够清楚。好的,让我们这样说:
第一个 var_dump 返回:
而第二个返回:
如果我unset($arr["a"])它将返回:
规则是,当 2 个或更多变量“指向”相同内容时,var_dump 将显示带有 & 字符 (&) 的引用。
在 $_SESSION 的情况下,即使 register_long_arrays = Off $_SESSION 仍然显示引用。所以很明显其他变量也指向相同的内容。
换句话说,如果我 unset($_SESSION) 还有其他变量可以链接到某个地方。在上面的示例中,当我unset($arr["a"])创建链接时,我仍然可以恢复该内容,例如:$arr["z"] =& $arr["b"]。
所以,我最初的问题是,有谁知道另一个变量是哪个?这样的变量很可能不存在......但我想知道为什么 PHP 内部会显示该引用。
谢谢
(原问题:)
当您在 PHP 中创建会话时,例如:
并转储 GLOBAL 变量:
你会看到类似的东西:
如您所见,变量 $GLOBAL[HTTP_SESSION_VARS] 和 $_SESSION 都是对其他对象内容的引用……有人知道那个对象是哪个吗?
理论上,如果我取消设置这两个变量,以某种方式它必须可以访问该内容......任何线索?
谢谢!
php - 可以使用 PHP 全局变量动态生成表单
显然我原来的帖子有点混乱,所以让我重新开始:
我本质上是在创建一个在线购物车,让经理能够为他/她的员工注册我们提供的培训服务。我们为每位注册的员工收取 49 美元的服务费。然而,这与传统购物车之间的主要区别在于,我们必须收集有关参与该计划的“每位”员工的大量数据——这些信息由雇主在注册/购买时提供。
作为经理,我输入我的个人信息,然后选择我想要注册的员工数量。我目前设置的站点可以处理 7 名员工,但实际上需要它来处理多达 30 名员工。我遇到的问题是我遇到的缺乏动态能力和巨大的文件大小(尤其是在验证中)。
每个战斗机的信息被传递并存储在会话超级全局变量中,例如:$_SESSION['F1Firstname']; 和 $_SESSION['F1SSN3']; 等等。我不想使用 javascript(也不会)来“添加另一个 Enrollee”按钮,因为这可以在客户端轻松关闭。
我的假设是这样的:
1) 我必须能够为每个新战斗机动态添加变量,以便它们可以存储在在线数据库中,然后传递给我们的测试中心——例如,employee 1 的名字是 F1FirstName;员工 12 的出生日期是 F12DOB1 等等。
2) 每个员工的验证将基于每个单独的字段相同(所有名字必须通过相同的测试)。所有电子邮件地址的验证必须通过相同的电子邮件验证测试,依此类推。如果我只是通过每个单独的记录来构建它,那么验证文件将会非常大。我想我需要以某种方式添加一个 Firstname 数组,但我不完全确定。
3)我需要它具有可扩展性,从某种意义上说,我希望经理最多可以招收 100 名员工,他/她可以。
4) 正如我所提到的,这就像一个购物车,所以经理一次登记所有员工,这样他们就可以在一次交易中支付所有员工的费用。
有人有什么想法吗?
php - PHP $_SERVER['SERVER_ADDR'] 变量总是返回 127.0.0.1
我们有多个负载平衡的 webserver 机器运行相同的 PHP webapp ( LAMP ),我想在每台服务器上运行稍微不同的代码(用于测试目的)。我希望使用$_SERVER['SERVER_ADDR']
超级全局来做这样的事情:
不幸的是,这不起作用,因为两台机器都设置$_SERVER['SERVER_ADDR']
为“ 127.0.0.1 ”。如何配置它们以便$_SERVER['SERVER_ADDR']
设置为它们的公共 IP 地址?
我猜这个问题可能与参考/etc/hosts
有关,它目前看起来像这样:
更新...
哎呀!我忽略了考虑Web 服务器前面的nginx反向代理。由于 nginx conf 中的以下行,到这些 Web 服务器的所有流量都来自 nginx:
php - 在 PHP 中使用超级全局 `$_SERVER['PHP_SELF']` 有什么好处?
使用 super global 有什么好处$_SERVER['PHP_SELF']
?
php - 在 PHP 中直接使用超全局变量是好是坏?
所以,我不是来自一个巨大的 PHP 背景——我想知道在格式良好的代码中,是否应该直接使用“超全局变量”,例如在某个函数的中间,$_SESSION['x'] = 'y';
或者如果,就像我通常做的那样变量,最好将它们作为可以从那里使用的参数发送,例如:
然后使用Doer->sess
Doer 等内部的版本。(这种方法的优点是清楚地Doer
使用了 $_SESSION。)
对于这个问题,公认的 PHP 设计方法是什么?
php - 如何使用 PHP 获取 URL 参数?
我正在尝试获取每个 URL 参数并从头到尾显示它们,但我希望能够在页面上的任何位置显示任何参数。我怎样才能做到这一点?我必须在我的脚本上添加或修改什么?
这是 URL 值的示例。
这是我的 PHP 脚本。
php - 有没有办法动态访问超全局?
作为一名 Web 开发人员,我总是将这种方法用于登录表单或其他“保存”操作(忽略直接访问输入变量的危险):
为了使这不那么乏味并符合 DRY 原则(有点),我做了这个:
尽管我非常聪明地使用了动态变量名来访问超全局,但这还是失败了。
所以,我坚持使用这个丑陋的东西:
我的问题:有没有办法像我在第二个代码示例中尝试做的那样动态访问超全局变量?如果没有,是否有更好/更有效的方法来完成我在第三个代码示例中所做的事情?
我的解决方案:感谢Tom Haigh 的回答,这是我将使用的最终代码:
php - $_POST 和关联数组中的变量变量
我可能有点厚,但我似乎无法找到这个问题的答案。我正在从一个注册全局变量打开的服务器移动到一个关闭它的服务器。这是一件好事,但不幸的是,我已经习惯了多年使用寄存器全局变量打开,这导致我编写草率的代码。我现在正试图解决这个问题。
我正在尝试重写一些在 $_POST 中有变量的旧代码。
我知道这是一个愚蠢的例子,但它说明了我要解决的问题。以下将与注册全局变量一起使用:
如何在注册全局变量关闭的情况下进行这项工作?以下显然不起作用:
请对我放轻松-我知道我可能很愚蠢,但我似乎无法理解这一点。
php - $_GET 和 isset()
if isset($_GET['whatever'])...
在我的 if 语句的其余部分之前,我正在尝试。E_NOTICE 错误是方便关闭的方法,对于$_POST
变量我在我的初始化脚本中有一个解决方案..
我发现这有助于自我发布脚本看起来干净。
如果您不知道密钥是什么,我不确定如何动态执行此操作?任何人都可以帮助找到类似的$_GET
变量解决方案吗?
编辑:
if ($_GET['whatever'] == "whatever");
如果未设置且没有E_NOTICE
错误,我只想返回 false 。
编辑:
抱歉,如果我不清楚我正在寻找解决方案,$_GET
而不是$_POST
- 我只是$_POST
作为我希望实现的目标的一个例子。