Hacer una Clase en PHP (Class)

Una clase en programación es un esquema/modelo o plantilla para crear variables (objetos) basados en ella, básicamente es un conjunto de variables e instrucciones con un fin especifico, eso nos ayuda a tener una programación bastante ordenada, además que tiene otras opciones como la posibilidad de heredar sus propiedad y funciones a clases hijas para que estas las reutilicen o las redefinan.

Cuando definimos objetos basados en clases, podemos acceder a sus variables y funciones publicas usando el siguiente formato:

$variable->VARIABLE_PUBLICA;
$variable->FUNCION_PUBLICA();

Por cuestiones de orden se recomienda tener la clase en un archivo, si tienes 2 clases, 2 archivos. esta seria una clase que nos devuelve el promedio de notas de un alumno:

<?php
class Student{
    public $nombre; //Se puede acceder desde el Objeto
    public $notas = array(); //Se puede acceder desde el Objeto
    private $promedio; //solo es usado dentro de la clase y no es heredable (protected si es heredable)

    public function __construct($arg_nombre="",$arg_notas=array()) //función que se auto ejecuta cuando defines un objeto, le puedes poner argumentos de inicialización, por defecto todo es vacío
    {
        $this->nombre=$arg_nombre; //ponemos el argumento pasado cuando defines el objeto
        $this->notas=$arg_notas;
    }
    public function promedio() //función que calcula el promedio, lo devuelve
    {
        $total=0; 
        foreach ($this->notas as $nota) //Ver tema http://www.elcodigofuente.com/usar-foreach-arrays-545/
        {
            $total+=$nota; //acumulo las nota actual 
        }
        $this->promedio=$total/4; //grabo el promedio de las 4 notas en la variable promedio, recuerde que las variables dentro de una clase se accedan con $this->
        return $this->promedio; //retornamos el promedio
    }
    public function imprimir_notas() //imprime las notas en pantalla
    {
        $i=0;
        foreach ($this->notas as $nota)
        {
            $i++;
            echo "Nota $i es: $nota <br />"; 
        }
    }
}
?>

Este seria el código en mi index.php, la clase se llama class_estudiante.php y se encuentra dentro de la carpeta /includes/

<?php
include("./includes/class_estudiante.php"); //llamamos al archivo que contiene la clase
$miestudiante = new Student("Wilsson",array(10,15,16,20)); //Declaramos el Objeto con parámetros que serán procesados por el constructor

$miestudiante->notas[3]=18; //la variable notas en la clase es publica, as que podemos manipularla directamente
$miestudiante->imprimir_notas(); //llamamos a la función que imprime las notas
echo "El promedio del estudiante <strong>" .$miestudiante->nombre. "</strong> es: "; //imprimo un mensaje con el nombre del estudiante
echo $miestudiante->promedio(); //llamamos a la función que imprime las notas una por una
?>

Lo que va imprimir:

Nota 1 es: 10
Nota 2 es: 15
Nota 3 es: 16
Nota 4 es: 18
El promedio del estudiante Wilsson es: 14.75

Como pueden ver, si la variable es publica se puede manipular, además que si definimos un constructor se puede instanciar las variables en la llama, de no existir el constructor de la clase el código seria de la siguiente manera:

<?php
include("./includes/class_estudiante.php"); //llamamos al archivo que contiene la clase
$miestudiante = new Student; //Declaramos el Objeto del tipo Student

$miestudiante->notas[0]=10;
$miestudiante->notas[1]=15;
$miestudiante->notas[2]=16;
$miestudiante->notas[3]=18; //la variable notas en la clase es publica, as que podemos manipularla directamente
$miestudiante->imprimir_notas(); //llamamos a la función que imprime las notas
echo "El promedio del estudiante <strong>" .$miestudiante->nombre. "</strong> es: "; //imprimo un mensaje con el nombre del estudiante
echo $miestudiante->promedio(); //llamamos a la función que imprime las notas una por una
?>

En lo personal me gusta trabajar con archivos de clases, funciones  y configuraciones, todo proyecto que hago tiene la siguiente estructura:

arbol_proyectoinc= las clases,funciones, etc cnf=archivo de configuración, data=archivos que genere el script como informes, cache, etc.


Posted

in

by

Comments

3 respuestas a “Hacer una Clase en PHP (Class)”

  1. Anabel Avatar
    Anabel

    Excelente

  2. edwar Avatar
    edwar

    Excelente script, funcional y muy actual, para poder aprender un poco mas.

  3. xxxxxx Avatar
    xxxxxx

    me sirvio de muxho, pase la materia de shoup con 10
    mil graxias

Agregue un comentario a xxxxxx Cancelar respuesta

Su dirección de correo no se hará público. Los campos requeridos están marcados *