PHP - POO Completo 5
El siguiente ejemplo tiene como objetivo visualizar una clase compleja y como llamar a métodos internos.
Creamos la clase Tabla con sus atributos $mat, $cantFilas y $cantColumnas. Construimos el método con los parámetros $fi y $co que van a modificar los atributos cantFilas y CantColumnas. Luego definimos el método cargar que tendrá los parámetros $fila, $columna y $valor para devolver el array $mat con 2 valores que va a ser igual al 3er parámetro (este nos indica el valor de la celda). Continuamos con inicioTabla que imprime la cabecera de la tabla e inicioFila que imprime la etiqueta, se sigue con mostrar que imprime el valor del array a través de sus parámetros que inicializan con el constructor, se crea el método finTabla que devuelve la etiqueta final HTML. Para el método graficar ya nos extendemos a llamar a, valga la redundancia los métodos, que imprimirán la cabecera para luego con un for asignar cantFilas y CantColumnas; finalizamos llamando a los métodos finales.
<html> <head> <title>POO_full_5</title> </head> <body> <?php /*Clase tabla*/ class Tabla { /*Las variables al ser una sola clase son private*/ private $mat=array(); /*Definimos un atributo $mat como array (matriz) a la que pasaremos los parámetros*/ private $cantFilas; private $cantColumnas; /*Inicializamos el objeto contruyendo la tabla con las filas y columnas*/ public function __construct($fi,$co) { /*Llenamos los parámetros referenciando los atributos*/ $this->cantFilas=$fi; $this->cantColumnas=$co; } /*La función cargar contiene cada celda de la tabla*/ public function cargar($fila,$columna,$valor) { /*Llenamos el atributo mat que es un array con los valores $fila y $columna que devolverán valor*/ $this->mat[$fila][$columna]=$valor; } public function inicioTabla() { /*El inicio de Tabla no devuelve más que la cabecera*/ echo '<table border="1">'; } public function inicioFila() { /*Idem con fin de la etiqueta*/ echo '<tr>'; } public function mostrar($fi,$co) { /*Mostramos la matriz mat con sus valores*/ echo '<td>'.$this->mat[$fi][$co].'</td>'; } public function finFila() { /*Fin de la fila*/ echo '</tr>'; } public function finTabla() { /*Idem FIN*/ echo '</table>'; } /*Funcion sin parámetros*/ public function graficar() { /*Inicializamos la tabla imprimiendo la cabecera*/ $this->inicioTabla(); /*Recorremos el atributo cantFilas que es llenado con cargar*/ for($f=1;$f<=$this->cantFilas;$f++) { /*Inicializamos fila y llamamos al método inicioFila*/ $this->inicioFila(); /*Completamos las columnas con el atributo cantFilas*/ for($c=1;$c<=$this->cantColumnas;$c++) { /*Se devuelve el método mostrar con valores, como se definen al construir la clase no generamos valores ($f y $c)*/ $this->mostrar($f,$c); } /*Se imprime el fin de la fila*/ $this->finFila(); } /*Se imprime el fin de la tabla*/ $this->finTabla(); } } /*Dimensiones de la tabla*/ /*Llenar con 1er Parámetro = cantidad de filas 2do Parámtetro = cantidad de columnas */ $tabla1=new Tabla(2,3); /* Se completa el objeto con los valores de la tabla */ $tabla1->cargar(1,1,"1"); /*Detalle de parámetros Parámetro 1 = Valor de la fila Parámetro 2 = Valor de la Columna Parámetro 3 = Valor impreso en Celda */ $tabla1->cargar(1,2,"2"); $tabla1->cargar(1,3,"3"); $tabla1->cargar(2,1,"4"); $tabla1->cargar(2,2,"5"); $tabla1->cargar(2,3,"6"); $tabla1->graficar(); ?> </body> </html>
Instanciamos el método Tabla que al tener un constructor que obtiene el número de columnas y filas se lo tenemos que definir. Al haber definido los parámetros estamos listos para cargar las celdas que compongan la tabla. Llamamos a la variable que inicia el objeto para cargarla y luego graficamos.
Resultado -> Click aquí para visualizar.
Espero que sirva, saludos, Ch4rl1X!