Es decir que si retorna un registro se almacena en el vector $reg y la condición del while se valida como verdadero y pasa a ejecutarse el bloque del while: { echo "Codigo:".$reg['codigo']."< br>"; echo "Nombre:".$reg['nombre']."< br>"; echo "Mail:".$reg['mail']."< br>"; echo "Curso:"; switch ($reg['codigocurso']) { case 1:echo "PHP"; break; case 2:echo "ASP"; break; case 3:echo "JSP"; break; } echo "< br>"; echo "< hr>"; }
El bloque del while muestra el contenido del registro rescatado por la función mysql_fetch_array. Como vemos, para rescatar cada campo accedemos mediante el vector asociativo $reg indicando como subíndice un campo indicado en el select:$reg['codigo']Cada vez que llamamos a la función mysql_fetch_array nos retorna el siguiente registro. Cuando debemos mostrar el curso mediante la instrucción switch, analizamos si tiene un 1,2 ó 3 y procedemos a mostrar el nombre del curso.Para separar cada alumno en la página HTML llamamos disponemos la marca "< hr>"
PROGRAMACIÓN ORIENTADA A OBJETOS
Programación Lineal: Es cuando desarrollamos todo el código disponiendo instrucciones PHP alternando con el HTML de la página.
Programación Estructurada: Planteamos funciones que agrupan actividades a desarrollar y luego dentro de la página llamamos a dichas funciones que pueden estar dentro del mismo archivo o en una librería separada.
Programación Orientada a Objetos: Es cuando planteamos clases y definimos objetos de las mismas.
¿Qué es una clase? Una clase es un molde del que luego se pueden crear múltiples objetos, con similares características. La clase define los atributos (variables) y métodos (funciones) comunes a los objetos de ese tipo, pero luego, cada objeto tendrá sus propios valores y compartirán las mismas funciones.
Son instancias de clases. Durante la ejecución de la aplicación se producirá la instanciación de esta clase, es decir, la creación de los objetos que representan cada uno de los individuos con sus características propias, es decir, valores específicos para sus atributos Objetos
Encapsulamiento Miembros públicos (+). Sin ningún tipo de protección especial Miembros privados (-). Inaccesibles desde el exterior de la clase Miembros protegidos (#). Similares a los privados aunque se permite su acceso desde las clases descendientes
El principio de ocultación de información se plasma en los lenguajes OO en diversos mecanismos de protección de los miembros de la clase:
Ejemplo de métodos y atributos < ?php class CabeceraPagina { private $titulo; private $ubicacion; public function inicializar($tit,$ubi) {$this->titulo=$tit; $this->ubicacion=$ubi; } public function graficar() {echo '< div style="font-size:40px;text-align:'.$this->ubicacion.'">'; echo $this->titulo; echo '< /div>'; } } cabecera=new CabeceraPagina(); $cabecera->inicializar('El blog del programador','center'); $cabecera->graficar(); ?>
Método constructor de una clase El constructor es un método especial de una clase. El objetivo fundamental del constructor es inicializar los atributos del objeto que creamos.
Básicamente el constructor remplaza al método inicializar que habíamos hecho en el concepto anterior.
Las ventajas de implementar un constructor en lugar del método inicializar son: El constructor es el primer método que se ejecuta cuando se crea un objeto y no puede ser llamado nuevamente. El constructor se llama automáticamente. Es decir es imposible de olvidarse llamarlo ya que se llamará automáticamente. Un constructor no puede retornar dato.
Ejemplo constructor < ?php class CabeceraPagina { private $titulo; private $ubicacion; public function __construct($tit,$ubi) { $this->titulo=$tit; $this->ubicacion=$ubi; } public function graficar() { echo '< div style="font-size:40px;text-align:'.$this->ubicacion.'">'; echo $this->titulo; echo '< /div>'; } }
$cabecera=new CabeceraPagina('El blog del programador','center'); $cabecera->graficar(); ?>
Llamada de métodos dentro de la clase. Para llamar un método desde donde creamos el objeto utilizamos la sintaxis: [nombre del objeto]->[nombre del método]
Es decir antecedemos al nombre del método el nombre del objeto y el operador -> Ahora bien que pasa si queremos llamar dentro de la clase a otro método que pertenece a la misma clase, la sintaxis es la siguiente: $this->[nombre del método] Es importante tener en cuenta que esto solo se puede hacer cuando estamos dentro de la misma clase.
Modificadores de acceso a atributos y métodos (public – private) Veíamos hasta ahora que todos los métodos planteados de la clase han sido públicos. Pero en muchas situaciones conviene que haya métodos privados (private). Un método privado (private) solo puede ser llamado desde otro método de la clase. No podemos llamar a un método privados desde donde definimos un objeto. Con la definición de métodos privados se elimina la posibilidad de llamar a métodos por error
Colaboración de objetos Cuando dentro de una clase definimos un atributo o una variable de otra clase decimos que esta segunda clase colabora con la primera.
class Cabecera { [atributos y métodos] } class Cuerpo { [atributos y métodos] } class Pie { [atributos y métodos] } class Pagina { private $cabecera; private $cuerpo; private $pie; [métodos] } $pag=new Pagina();
El constructor de la clase pagna: public function __construct($texto1,$texto2) { $this->cabecera=new Cabecera($texto1); $this->cuerpo=new Cuerpo(); $this->pie=new Pie($texto2); }
Herencia Otra requisito que tiene que tener un lenguaje para considerarse orientado a objetos es la HERENCIA. La herencia significa que se pueden crear nuevas clases partiendo de clases existentes, que tendrá todas los atributos y los métodos de su 'superclase' o 'clase padre' y además se le podrán añadir otros atributos y métodos propios. En PHP, a diferencia de otros lenguajes orientados a objetos (C++), una clase sólo puede derivar de una única clase, es decir, PHP no permite herencia múltiple.
Superclase o clase padre
Clase de la que desciende o deriva una clase. Las clases hijas (descendientes) heredan (incorporan) automáticamente los atributos y métodos de la la clase padre.
Subclase
Clase desciendiente de otra. Hereda automáticamente los atributos y métodos de su superclase. Es una especialización de otra clase. Admiten la definición de nuevos atributos y métodos para aumentar la especialización de la clase.
Ejemplo Siempre hacia abajo en la jerarquía hay una especialización (las subclases añaden nuevos atributos y métodos
¿Cuándo hay herencia? Cuando la relación entre dos clases es del tipo "…tiene un…" o "…es parte de…", no debemos implementar herencia. Estamos frente a una relación de colaboración de clases no de herencia.
Luego si vemos que dos clase responden a la pregunta ClaseA "..es un.." ClaseB es posible que haya una relación de herencia.Por ejemplo: Auto "es un" VehiculoCirculo "es una" FiguraMouse "es un" DispositivoEntradaSuma "es una" Operacion
Ejemplo Herencia < ?php class Operacion { protected $valor1; protected $valor2; protected $resultado; public function cargar1($v) { $this->valor1=$v; } public function cargar2($v) { $this->valor2=$v; } public function imprimirResultado() { echo $this->resultado.'< br>'; } }
class Suma extends Operacion { public function operar() { $this->resultado=$this->valor1+$this->valor2; } } class Resta extends Operación { public function operar() { $this->resultado=$this->valor1-$this->valor2; } }
$suma=new Suma(); $suma->cargar1(10); $suma->cargar2(10); $suma->operar(); echo 'El resultado de la suma de 10+10 es:'; $suma->imprimirResultado(); $resta=new Resta(); $resta->cargar1(10); $resta->cargar2(5); $resta->operar(); echo 'El resultado de la diferencia de 10-5 es:'; $resta->imprimirResultado(); ?>
Página anterior | Volver al principio del trabajo | Página siguiente |