在PHP中,处理变量中循环的最佳实践是什么?让我解释一下。
我有一个名为 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中以处理数组并吐出<option></option>
代码。下面是一个示例:
foreach ($SELECT_INDUSTRY as $INDUSTRY) {
echo '<option value="$INDUSTRY">$INDUSTRY</option>';
}
因此,此函数将根据数组值构建我的选择选项。这有效,但是我如何将总值传递到我在上面的 form.inc 文件中定义的变量中?在form.inc文件中,我$INDUSTRY作为变量,我想它需要从另一个函数返回某种结果。如果涉及到全局变量,这可能还需要全局变量在函数之间传递。有没有更好的处理方法?
我的最终目标是使用变量 $FORM_FIELD_INDUSTRY,它根据数组值吐出 foreach 函数。
溶液
下面列出了解决方案,但对于遇到此问题的任何人,这是我所做的:
索引.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>
表单.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;
?>
在函数和变量之间传递值的非常简单的解决方案。
您可以使用一个函数来构建选项并像这样返回它:
function get_options( $arr = array() ) {
echo '<select>';
foreach( $arr as $option ) {
echo '<option>'.$option.'</option>';
}
echo '</select>';
}
然后在你的HTML中,你可以这样称呼它:
<html>
<head></head>
<body>
<?php get_options( $SELECT_INDUSTRY ); ?>
</body>
</html>
因此,如果我把你给我们的代码放在上面,把它全部组合起来,它看起来像这样:
<?php
$SELECT_INDUSTRY = array("Industry1", "Industry2", "Industry3");
require_once('form.inc');
?>
<html>
<head></head>
<body>
<?php get_options( $SELECT_INDUSTRY ); ?>
</body>
</html>
<?php
function get_options( $arr = array() ) {
echo '<select>';
foreach( $arr as $option ) {
echo '<option>'.$option.'</option>';
}
echo '</select>';
}
?>