【发布时间】:2011-05-12 20:18:29
【问题描述】:
有没有办法自动化(或至少自动化一些过程)从存储在$_POST 或$_GET 超全局变量中的表单中提取数据?
我知道您可以使用 foreach 循环和其他类型的循环对数组进行迭代,以对每个键/值对执行某些操作,但很多时候我还有其他代码需要这些数据但无法正常工作完全在 foreach 循环中时。
编辑:这是我能想到的一个例子。假设我有一大堆已发布的数据并想将其插入数据库。据我所知,做这样的事情是不可能的,因为我需要在每个循环的不同列中插入一个值:
foreach($array as $key => $value) {
mysql_query(INSERT INTO table (somecolumn) VALUES($value);
}
另外,我真正想做的另一件事是从发布的数据中获取所有值,并以某种方式将它们中的每一个分配给一个变量;有点像extract() 所做的,但没有覆盖其他变量的问题。我能想到的唯一办法就是以某种方式将数据放入一个数组中,但我不确定这是否更有效:
$data = array();
foreach($array as $key => $value) {
$data[$key] = $value;
}
我能想到的最后一种情况是我必须在 foreach 循环之外使用这些数据。如果我修改我的代码以使所有内容都在 foreach 循环内执行,那么我只能将与表单数据有关的所有内容保留在循环内。如果变量和/或常量是在循环内定义的,它们就不能在循环外访问,对吗?我最近一直在使用 Java,并且习惯了更严格的范围和更严格的变量处理方式:)
我已经阅读了一些关于 extract() 方法的文章,但使用它看起来有点危险(覆盖变量、安全漏洞等)。
对于其他处理大量数据(比如说 25 个以上的表单字段)的人,您是如何做到的?我厌倦了一遍又一遍地分配像$data = $_POST['somedata'] 这样的变量以在其他地方使用它们......
谢谢!
【问题讨论】:
-
详细说明“但很多时候我有其他代码需要这些数据,但在 foreach 循环中根本无法工作。”什么样的代码不能在 foreach 循环中工作??
-
只是添加了几个我能想到的例子
标签: php arrays forms loops post