我遇到了一些在其他人的代码中为表单验证器工作的代码。它应该从发布的表单数据中返回一个值。不管怎样,它总是回来NULL
的。这就是函数的全部内容(假设这段代码确实在某一时刻有效):
function _getValue($field)
{
global ${$field};
return ${$field};
}
从其他函数的上下文中,我可以看出它试图从(在这种情况下)$_POST 变量中获取值。当我将功能更改为以下内容时,一切都像魅力一样:
function _getValue($field)
{
// $_REQUEST should hold $_GET and $_POST values
return $_REQUEST[$field];
}
所以我的问题是......在这种情况下到底是什么global ${$field}
意思?我知道是什么${$field}
,但假设他们传递email
给了那个函数。这个全局$email
变量是从哪里来的?
原始功能应该如何工作?我知道有什么叫做“Super Globals”之类的东西,那很糟糕。这有关系吗?这可能是它停止工作的原因吗?楼主是不是关了Super Globals?
[编辑]我提出问题的方式明显有些混乱。我知道 ${$field} 和 $$field 是什么意思,但我不知道如何
global ${$field};
return ${$field};
返回用户放入表单中的值,例如
<input name="email">
你打电话时
$this->_getValue('email');