Программные формы в ZF поддерживают только тип параметров, имя и параметры (не в смысле выбора, а в настройках элемента, например, как требуется или метка) для элементов формы. Предполагается, что несколько значений будут установлены динамически, например:
$formConfig = new Zend_Config_Xml('/path/to/form.xml');
$form = new Zend_Form($formConfig);
$form->getElement('myselect')->setMultiOptions($arrayOfOptions);
Конечно, есть возможность на самом деле установить параметры элемента в файле XML, используя ваше собственное соглашение об именах (будет игнорироваться Zend_Form), а затем загружать их оттуда вместо того, чтобы жестко кодировать или получать во время выполнения, например:
<?xml version="1.0" encoding="UTF-8"?>
<form>
<user>
<example>
<name>mysampleform</name>
<method>post</method>
<elements>
<myselect>
<type>select</type>
<name>myselect</name>
<multioptions> <!-- custom tag -->
<option value="First">1</option>
<option value="Second">2</option>
<option value="Third">3</option>
</multioptions>
<options>
<label>Choose an option:</label>
<required>true</required>
</options>
</myselect>
<submit>
<type>submit</type>
<options>
<value>Submit</value>
</options>
</submit>
</elements>
</example>
</user>
$formConfig = new Zend_Config_Xml('/path/to/form.xml');
$form = new Zend_Form($formConfig);
$form->getElement('myselect')->setMultiOptions(
$formConfig->user->example->elements->myselect->multioptions->toArray()
);
Тем не менее, это не кажется более эффективным, чем просто хранить эти параметры где-то еще.