先日私はこの巨大な配列セットを与えられ、束を持つHTMLページを作ったり、ラジオボタンを選択したりして、単純化するための単純な関数をいくつか書きました。単純なPHP関数で変数変数を使う
これは、非常に大きなHTMLセレクトを生成する機能です。
function genSelect($name) {
$selectReturn = '<select name="'.$name.'">';
foreach(${$name} as $value=>$text){
$selectReturn .= '<option value="'.$value.'"';
if($evalThis->loaded_settings[$name]['value']==$value)
$selectReturn .= ' SELECTED ';
$selectReturn .= '>'.$text.'</option>';
}
$selectReturn .= '</select>';
return $selectReturn;
}
これは、私はあまりにもそれを期待するよう${$name}
は、単に何も/仕事を呼び出すことはありませんので、動作するようには思えません。関数呼び出しで配列を渡すだけで、このコードの変数変数に何が間違っているのか悩んでいます。
編集:設定を入力するための巨大なUIを構築するために、いくつかのコンテキストを与えるために、これはjoomlaビューにロードされています。この関数はlibファイルにあり、使用するすべての配列を含む別のファイルに沿ってrequire_once
がロードされます。データベースにはこれらの設定の現在の値のみが格納され、配列にはさまざまな選択/ラジオ/ドロップダウンメニューの可能なすべてのオプションが含まれており、言語/翻訳上の理由から別のファイルに集約されています。
人々が尋ねた質問には、$name
には、使用する配列の名前と、HTMLの選択/ラジオ/チェックボックス入力の名前が含まれています。 $evalThis
は、データベースが現在持っている値を含む配列です。
あなたは$ nameのデータがどのようなものかの例を挙げることができますか? – FlipMcF
私はちょうど質問しなければなりません: '$ evalThis'は何をしますか?それはちょっと「悪」と聞こえる。 – PeeHaa
これを試してください: '$ evalThis = new stdClass(); –