Hay varias cosas a corregir, algunas conceptuales y otras de codigo.
Dentro de las conceptuales: Estas creando una clase que solamente te permitira agregar un elemento por cada instancia. No tiene mucha utilidad, tal vez estas practicando o haciendo una tarea, pero ni como ejercicio lo veo viable.
De codigo (y tambien conceptual):
Código PHP:
Ver original// El metodo admite solo un parametro:
public function creaOption($option){
$this->options[]=$option;
}
// Sin embargo, al agregar una nueva opcion, creas otro objeto... con que objeto?
$frutas->creaOption(new Option('Naranjas','Naranjas'));
Tal vez seria mas conveniente algo como:
Código PHP:
Ver originalpublic function creaOption($index, $caption){
$this->options[$index]=$caption;
}
// Y al crear cada opcion:
$frutas->creaOption('naranjas','Naranjas');
// Despues, al mostrarlas:
foreach($this->options as $index => $caption) {
echo "<option value=\"$index\">$caption</option>\n";
}
Finalmente, dentro del metodo render, haces:
echo $opt->render();
Creo que esto terminaria en un ciclo infinito.