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:
inc= las clases,funciones, etc cnf=archivo de configuración, data=archivos que genere el script como informes, cache, etc.
Excelente
Excelente script, funcional y muy actual, para poder aprender un poco mas.
me sirvio de muxho, pase la materia de shoup con 10
mil graxias