在PHP中,处理变量循环的最佳做法是什么?让我解释。将数组值传递给foreach,最后是另一个变量?
我有一个名为index.php的文件,该文件包含以下内容:
<?php
$SELECT_INDUSTRY = array("Industry1", "Industry2", "Industry3");
require_once('form.inc');
?>
<html>
<head></head>
<body>
<?php echo $FORM_FIELD_INDUSTRY ?>
</body>
</html>
然后我有一个名为form.inc第二个文件:
<?php
$FORM_FIELD_INDUSTRY = '<select><option value=>Select an Industry</option>'.$INDUSTRY.'</select>';
?>
这里所需要的。我想将所输入的数组值传递给foreach以处理该数组并且吐出3210代码。这里有一个例子:
foreach ($SELECT_INDUSTRY as $INDUSTRY) {
echo '<option value="$INDUSTRY">$INDUSTRY</option>';
}
所以这个函数会根据数组值创建我的选择选项。这是有效的,但是我怎样才能将总值传递给我在上面的form.inc文件中定义的变量?在form.inc文件中,我使用$ INDUSTRY作为变量,我想这需要某种来自其他函数的返回。这可能还需要全局变量在函数之间传递。有没有更好的方法来处理这个问题?
我的最终目标是让变量$ FORM_FIELD_INDUSTRY根据数组值来吐出foreach函数。
SOLUTION
的解决方案如下所列,但对任何人碰到这个来了,这里是我做过什么:
的index.php
<?php
$SELECT_INDUSTRY = array("Industry1", "Industry2", "Industry3");
$FORM_SELECT_SIZE = '';
require_once('form.inc');
?>
<html>
<head></head>
<body>
<?php get_options($FORM_FIELD_INDUSTRY) ?>
</body>
</html>
form.inc
<?php
function get_options($arr = array()) {
global $FORM_SELECT_SIZE;
echo '<select id="industry" class="'.$FORM_SELECT_SIZE.'"><option value=>Select an Industry</option>';
foreach($arr as $option) {
echo '<option>'.$option.'</option>';
}
echo '</select></div></div>';
}
$FORM_FIELD_INDUSTRY = $SELECT_INDUSTRY;
?>
非常简单的解决方案,用于在函数和变量之间传递值。
为什么你不只是使用一个函数那里的foreach? – Gazillion
我想到了这一点,但我无法获得最终的代码正确工作。我想我可以将foreach分解为一个函数,但是如何在变量声明中调用该函数?我不确定我能做到这一点。 – stebesplace
您可以将变量作为参数传递给您的函数,查看下面答案中的代码以查看方式。 – Gazillion