Cursos PHP orientado a objetos – Crear una clase (constructor)

Constructor

El constructor en PHP se define como se muestra a continuación:

function __construct($id, $nombre, $apellidos, $codigoPostal){
	$this->id = $id;
	$this->nombre = $nombre;
	$this->apellidos = $apellidos;
	$this->codigoPostal = $codigoPostal;
}

Como podéis apreciar, es una función, con un nombre determinado “__construct” que recibe los parámetros necesarios para la clase y los asigna a los atributos de la clase.

Creando nuestra primera clase

Con todo lo que ya hemos explicado, podemos crear un ejemplo completo. Crearemos un par de objetos inicializándolos con unos valores que introduciremos nosotros y luego los mostraremos por pantalla. Para representarlo haremos uso de HTML.

Si en lugar de incluir nosotros los datos a mano, los incluyéramos a través de, por ejemplo, una conexión con una base de datos MySQL, en la que la clase también apareciera como una tabla, estaríamos creando las bases para una completa aplicación de usuarios con base de datos, que a la vez de fácil de implementar, sería fácil de modificar, mantener y mejorar.

Crearemos los objetos llamando al constructor, los insertaremos en un array y al final, los mostraremos por pantalla recorriendo el array de objetos que acabamos de crear. Usaremos las funciones de acceso a los atributos, ya que si intentamos acceder directamente a ellos nos devolverá el siguiente error al tratarse de atributos privados: “Fatal error: Cannot access private property Usuario::$id”.

<?php
    include("clases.php");

    $vector_usuarios = array();

    $tmp = new Usuario(1, "José", "Gómez Martínez", 14004);
    array_push($vector_usuarios, $tmp);
    $tmp = new Usuario(2, "Javier", "Pérez García", 28080);
    array_push($vector_usuarios, $tmp);
    $tmp = new Usuario(3, "Jorge", "Reina Ramírez", 18001);
    array_push($vector_usuarios, $tmp);

    echo "<h2>Ejemplo orientaci&oacute;n a objetos con PHP 
para Linux Hispano</h2>";

    foreach($vector_usuarios as $elemento_vector)
    {
        echo "<div>
                <h3>Usuarios sistema</h3>
                <ul>
                    <li>Id. - " . $elemento_vector->getId() . "</li>
                    <li>Nombre - " . $elemento_vector->getNombre() . 
"</li>
                    <li>Apellidos - " . $elemento_vector->getApellidos() . 
"</li>
                    <li>C&oacute;digo postal - " . 
$elemento_vector->getCodigoPostal() . "</li>
                </ul>
            </div>";
    }
?>

En la próxima entrega veremos cómo practicar la sobrecarga de funciones en PHP, ya que al no existir como tal, debemos usar una técnica que nos permita imitarla.

Author Description

F. Javier Carazo Gil

Casi Ingeniero Informático, co-fundador y administrador de Linux Hispano, además de desarrollar software y mantener sistemas en el CSIC, hace poco he fundado junto con Alberto Hornero una start-up: CODECTION donde trabajamos con software libre. Puedes saber más sobre mí, mi vida laboral, mis libros, mis artículos y mi día a día en @fjcarazo y en mi perfil público de LinkedIn.

  • Pingback: Bitacoras.com()

  • javier parra

    gracias por el curso de php

    salu2

  • @javier parra: Muchas gracias a ti por seguirnos. Vamos a intentar continuar la línea de cursos que empezamos con C#/Mono y Java, que están teniendo muy buena aceptación en lo que a visitas se refiere.

    ¿Alguna sugerencia de curso interesante aparte de los que ya estamos tratando?

  • javier parra

    @carazo en estos momentos nose me ocurre asi ninguno pero cuando mi mente ande libre densansada y pensatiba ya os comentaré

  • magtec

    Muy buen material y muy bien explicado!

  • @javier parra: Ya nos dirás por estas líneas, siempre estamos abiertos a aceptar vuestras sugerencias.

    @magtec: Gracias, hoy sale otra entrega y creo que mañana otra, para el fin de semana quizás esté terminado. Voy a empezar a editar más cursos que veo que tienen éxito sobre todo a medio y largo plazo.

  • voce

    El tutorial esta muy bien, sin embargo para aquellas personas que recien se estan iniciando en POO PHP podrias explicar, si fuera posible el significado de la codificacion linea por linea.
    Saludos y exitos.