0

以下は配列 ($answers) です。最後の配列項目に $id が表示されます。

    14 => array (
    "Joghurtos zabkása",
    "Joghurt zabbal",
    "Joghurt zabpehellyel",
    "Reggeli zabbal",
    "Egyéb <input type=\"text\" name=\"poll".$id."\" style=\"width:100px; \" value=\"\" /> "

関数内:

function NewPoll($id,$type,$optional=false){
global $answers;
            foreach ( $answers[$id] as $key => $value ) {
                echo "
                <input type=\"radio\" name=\"poll".$id."\" id=\"poll".$id."[".$key."]\" value=\"".$key."\" />
            <label for=\"poll".$id."[".$key."]\">".$value."</label><br />";
            }

私がやりたいことは、関数から $value 変数を介して印刷するときに、配列からの $id が関数内の $id を取得することです。$id は関数内で値を取得し、関数の外では定義されていませんが、ロードされたときに使用したいと思います。どこまで清楚なのかわからない…

4

3 に答える 3

1

これはできません。14配列内のその要素が定義されたとき。$id変数はその値に置き換えられ、文字列に埋め込まれました。後でその配列へのアクセスを開始すると、この特定の値が変数から取得されたという「履歴」がその文字列に添付されていません。現在は単なる文字列です。

たとえば、持っている場合

$foo = 'bar';
$baz = "This string contains $foo";
echo $baz; // prints: This string contains bar
$foo = 'qux';
echo $baz; // prints: This string contains bar

$foo文字列が構築された後に変更しても、その文字列の内部には変更されません。これは、文字列が構築されたときに変数から来たという事実が失われるためです。barquxbar

于 2013-08-09T16:31:39.067 に答える
0

すでに$id を文字列に注入しているため、これを行うことはできません。

試してみてくださいvar_dump($answers);。質問に投稿した出力は表示されません (識別子 '$id' はその内容に置き換えられます)。

于 2013-08-09T16:29:51.107 に答える