0

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 という 2 番目のファイルがあります。

<?php
$FORM_FIELD_INDUSTRY = '<select><option value=>Select an Industry</option>'.$INDUSTRY.'</select>';
?>

必要なものは次のとおりです。<option></option>入力された配列値を foreach に渡して配列を処理し、コードを吐き出したいと思います。次に例を示します。

foreach ($SELECT_INDUSTRY as $INDUSTRY) {
echo '<option value="$INDUSTRY">$INDUSTRY</option>';
}

したがって、この関数は配列値に基づいて選択オプションを構築します。これは機能しますが、上記の form.inc ファイルで定義した変数に合計値を渡すにはどうすればよいでしょうか? form.inc ファイルには、変数として $INDUSTRY があります。これには、他の関数からの何らかの戻り値が必要だと思います。これに関しては、関数間で渡すグローバル変数も必要になる場合があります。これを処理するより良い方法はありますか?

私の最終目標は、配列値に基づいて foreach 関数を吐き出す変数 $FORM_FIELD_INDUSTRY を持つことです。

解決

解決策を以下に示しますが、これに遭遇した人のために、私がやったことは次のとおりです。

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>

株式会社フォーム

<?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;
?>

関数と変数の間で値を渡すための非常に単純なソリューション。

4

1 に答える 1

0

関数を使用してオプションを作成し、次のように返すことができます。

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>';
}
?>
于 2012-06-29T17:21:58.010 に答える