PHPHacer una Clase en PHP (Class)

Hacer una Clase en PHP (Class)

-

- Advertisment -

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 https://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.

3 COMENTARIOS

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Últimas Noticias

WordPress – Crear BBCODE o shortcode personalizados

Los BBCODES o "shortcode" son esas funciones que tiene Wordpress y que se usan con corchetes, que generalmente te...

WordPress – Enviar título de la página o campo oculto, en Contact Form 7

Problema: Tengo un cliente que tiene una web con muchos productos y en todas sus páginas usa el mismo formulario...

Laravel – Modo Debug según IP

En algunos casos se necesita el modo DEBUG según IP, por ejemplo cuando estamos en producción y tenemos un...

Reemplazar URLs cuando cambias de dominio en WordPress (también de http a https)

Cuando haces un cambio de dominio por alguna razón (antes te llamabas www.viejodominio.com y ahora www.nuevodominio.com) si bien ya...
- Advertisement -

Como ejecutar comandos Artisan desde consola Git

Voy a suponer que ya tienen instalado el composer y php de manera global y un proyecto en Laravel....

Ejecutar Composer y/o PHP de manera Global en Windows

Si por alguna razón al instalar Composer este no funciona desde cualquier ruta estando en linea de comandos (ya...

Debe leer

- Advertisement -

También podría gustarteRELACIONADA
Recomendada para usted