2017-04-12 44 views
2

我经常有很长的输入变量列表需要处理,并且想要处理它们循环访问数组。使用数组和循环创建和操作形式变量集合

所以不是:

a = b = c = d = e = f = g = h = i = j = k = l = m = n = o = p = q = r = s = t = u = v = w = x = y = z = ''; 

,然后也许后来就做这样的事情:

$a = sanitize_text($a); 
$b = sanitize_text($b); 
$c = sanitize_text($c); 
... 
$z = sanitize_text($z); 

我可以改为:

$input_vars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); 

,然后简单地说:

for($i = 0; $i < count($input_vars); $i++){ 
${$input_vars[$i]} = ''; 
} 

再后来,

for($i = 0; $i < count($input_vars); $i++){ 
${$input_vars[$i]} = sanitize_text(${$input_vars[$i]}); 
} 

和其他但是我可能需要MANIP输入瓦尔。但是我不断收到这些类型的示例的未定义​​变量警告。那么,我在这里做错了什么能够使用数组来创建和操作表单变量集呢?

+0

你在哪里得到错误? –

回答

2

将数据保留在数组中而不是分解成单独的变量。然后,您可以使用所有这些工具来操作数据集:http://php.net/manual/en/ref.array.php
更重要的是,您不会冒险覆盖现有变量,也不会有任何有关未定义变量的警告。

像这样:

// Initialize the array with empty values 
$input_vars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); 
$input_vars = array_fill_keys($input_vars, ''); 

// Do something with the data 
foreach ($input_vars as $key => &$value) { 
    $value = sanitize_text($value); 
} 

使用foreach构造,通过阵列循环。