jueves, 21 de marzo de 2013

Introducción a objetos con PHP


Atributos de una clase


Los atributos son las características, cualidades, propiedades distintivas de cada clase. Determinan la apariencia, estado y demás particularidades de la clase. Varios objetos de una misma clase tendrán los mismos atributos pero con valores diferentes.

Lo más conveniente es que los atributos sean privados para que solo los métodos de la clase puedan modificarlos.


Creamos una clase que muestre una lista de hipervínculos en forma horizontal (básicamente un menú de opciones).

Lo primero que debemos pensar es que valores almacenará la clase, en este caso debemos cargar una lista de direcciones web y los títulos de los enlaces. Podemos definir dos vectores paralelos que almacenen las direcciones y los títulos respectivamente.



<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
//declaramos la clase
class Menu {
//declaramos los atributos
  private $enlaces=array();
  private $titulos=array();
//función constructora
  public function cargarOpcion($en,$tit)
  {
//accedemos a las variables
//Utilizamos la característica de PHP que un vector puede ir creciendo solo con asignarle el //nuevo valor. El dato después de esta asignación $this->enlaces[]=$en; se almacena al final //del vector.
    $this->enlaces[]=$en;
    $this->titulos[]=$tit;
  }
//Este método será llamado tantas veces como opciones tenga el menú.

//El siguiente método tiene por objetivo mostrar el menú propiamente dicho

  public function mostrar()
  {
//Disponemos un for y hacemos que se repita tantas veces como elementos tenga el vector //$enlaces (es lo mismo preguntar a uno u otro cuantos elementos tienen ya que siempre //tendrán la misma cantidad). Para obtener la cantidad de elementos del vector utilizamos la //función count.

    for($f=0;$f<count($this->enlaces);$f++)
    {
//Hay que acostumbrarse que cuando accedemos a los atributos de la clase se le antecede el //operador $this-> y seguidamente el nombre del atributo propiamente dicho. Si no hacemos //esto estaremos creando una variable local y el algoritmo fallará.

      echo '<a href="'.$this->enlaces[$f].'">'.$this->titulos[$f].'</a>';
      echo "-";
    }
  }
}
 //Creamos un objeto mediante el operador new y seguido del nombre de la clase. Luego //llamamos al método cargarOpcion tantas veces como opciones necesitemos para nuestro //menú (recordar que SOLO podemos llamar a los métodos de la clase si definimos un objeto //de la misma)
$menu1=new Menu();
$menu1->cargarOpcion('http://www.google.com','Google');
$menu1->cargarOpcion('http://www.yahoo.com','Yhahoo');
$menu1->cargarOpcion('http://www.msn.com','MSN');
$menu1->mostrar();
?>
</body>
</html>


0 comentarios:

Publicar un comentario



 
contador de visitas