<?php
class menu
{
private $enlaces = array();
private $titulo = array();
public function inicializar($enl,$tit)
{
$this->enlaces[] = $enl;
$this->titulo[] = $tit;
}
public function mostrarhorizontal()
{
for($x=0;$x<count($this->enlaces);$x++)
{
echo "<a href=\"$this->enlaces[$x]\">$this->titulo[$x]</a>";
}
}
public function mostrarvertical()
{
for($x=0;$x<count($this->enlaces);$x++)
{
echo "<a href=\"$this->enlaces[$x]\">$this->titulo[$x]</a><br>";
}
}
}
$instancia = new menu();
$instancia->inicializar("http://www.google.es","Google");
$instancia->inicializar("http://www.php.es","PHP");
$instancia->mostrarvertical();
?>
El caso es que en vez de mostrar el titulo, que marca el <a href=''>Titulo</a>, devuelve Array
- y no sé porque , he revisado el código y no encuentro nada raro nose :S.
Gracias compañeros :)
Estas mandando mal el parametro.... lo que estas haciendo es crear diferentes arrays
intenta esto:
$links[0]="http://www.google.es";
$titulos[0]="Google";
$links[1]="http://www.php.es";
$titulos[1]="PHP";
$instancia = new menu();
$instancia->inicializar($links,$titulos);
$instancia->mostrarvertical();
Esto para que veas mejor como funciona el array... aunque podrias haber enviado los links y titulos directos en la funcion inicializar separados por comas
En realidad, lo que te falla es que imprimes mal el echo.
echo "<a href=\"$this->enlaces[$x]\">$this->titulo[$x]</a><br>";
Si te fijas, el $this->titulo[$x] no lo separa ninguna comilla.
Te recomiendo que uses tanto las comillas simples como las dobles.. te va a hacer la vida mas facil :P
echo '<a href="'.$this->enlaces[$x].'">'.$this->titulo[$x].'</a><br>';
PD: Esto va en el subforo de PHP (http://foro.elhacker.net/php-b68.0/).
Saludos