На днях мне был предоставлен этот огромный набор массивов и он предложил сделать 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}
просто не вызывает ничего/работу, как я надеюсь, тоже. У меня уже есть работа вокруг, где я просто передаю массив, хотя вызов функции, но он исказил меня, что я делал неправильно с переменными переменными в этом коде.
Редактировать: Чтобы дать некоторый контекст, это загружается в представлении joomla для создания гигантского пользовательского интерфейса для ввода параметров. Эта функция находится в файле lib и загружается с require_once
рядом с другим файлом, содержащим все используемые мной массивы. База данных содержит только текущие значения этих параметров, а массивы содержат все возможные варианты для различных меню выбора/радио/выпадающего меню и централизованы в отдельном файле по причинам языка/перевода.
Уточнение некоторых вопросов, заданных людьми, $name
просто содержит имя используемого массива, а также имя входа/выбора HTML/флажка. $evalThis
- это массив, содержащий значения, имеющиеся в базе данных.
Вы можете привести пример того, как выглядят данные в $ name? – FlipMcF
Я просто должен спросить: что делает '$ evalThis'? Это звучит как «злой». – PeeHaa
Попробуйте следующее: '$ evalThis = new stdClass(); $ evalThis-> loaded_settings = array ('abc' => array ('value' => 1)); ' –