Entendido.

Este sitio utiliza cookies para analizar la navegación. Si continúa navegando se entiende que acepta su uso. Ver más detalles.";

Logo

Aprende Web

Crea y diseña tus sitios en la Web.

Manual de PHP

PHP: imprescindible para crear páginas web de modo profesional


Y ahora tambien aprende a programar en C++ con Aprende Web C++

logo rss RSS. Suscribir canal.

Buscar en Aprende Web

Traducir página

Visita nuestro blog:

bolg.aprende-web.net

y entérate de las novedades o deja un comentario.

Dudas y sugerencias:

aprendeweb@aprende-web.net





Sobre ésta página

Ültima modificación: 29-01-2016.

Visitas este mes: 143

Visitas el mes pasado: 73

logo
WEB-GRAFÍA

Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de este manual.:

Curso de PHP
www.programaciónweb.net
Lecciones PHP
WebTaller.com
Manual de PHP
manualdephp.com
Curso de PHP
Aula Fácil.com
Manual de PHP en español
manual-php.com
PHP a fondo
desarrolloweb.com
Manual de PHP
Foros del Web
Manual de PHP
www.php.net
PHP Tutorial
w3schools.com

Donativos

Si este sitio te parece interesante puedes contribuir con una pequeña aportación.




15. Objetos en PHP (III)

15.3 Funciones constructoras.

php

Definición de funcion constructora

Una función constructora o constructor, es una función que podemos llamar al mismo tiempo que instanciamos un objeto.

Esta función es parecida a cualquier otro método de la clase, con la diferencia de que la podemos llamar cuando instanciamos un objeto.


Crear una función constructora:

Para crear una función constructora debemos llamarla de la misma manera que la clase a la que pertenece, por ejemplo si hemos creado la clase:

class Herramientas { ... }

Dentro de las llaves que definen la clase crearemos la función:

function Herramientas ($argum1, $argum2, ... $argumN) { ... }

Como vemos la función puede llevar o no argumentos, y dentro de las llaves podemos indicar las propiedades del objeto mediante la variable $this .

Para llamar a una función constructora lo haremos en el momento de instanciar el objeto, de la siguiente manera:

$caja_herramientas = new Herramientas($arg1,arg2, ... argN);

Es decir, al instanciar el objeto, le pasamos los argumentos, de manera que desde el mismo momento en que se crea el objeto, este puede tener ya una serie de propiedades, condiciones, o modo de actuar, marcado por la función constructora.

Una de las utilidades más frecuentes de la función constructora es la de añadir al objeto instanciado las propiedades que queremos que sean distintas a las que tiene por defecto. Esto se hace pasándole los nuevos valores como argumentos, e indicando en la función constructora que el objeto debe tener esos nuevos valores.


Ejemplo de función constructora

Vamos a ver cómo funciona una función constructora con un ejemplo, para ello retomamos el ejemplo de la página anterior, donde habíamos creado una clase Herramientas. El código de la clase estaba guardado en el archivo clase_herramientas.php. A este código le añadiremos una función constructora que define el valor de las propiedades del objeto. Estos valores se los pasaremos como argumentos de la función. El código de esta página quedará así:

<?php  
class Herramientas {
var $nombre="sin_nombre";
var $precio=0;
var $imagen="objetos/herramientas.gif";
var $descripcion;
var $precio_descuento;
function descuento($porcentaje) {
         $rebaja=$this->precio - ($this->precio*($porcentaje/100));
         $this->precio_descuento =$rebaja;
         }
function mostrar() {
         echo "<img src='$this->imagen' alt='$this->nombre' width='200' align='left'>";
         echo "<p>Producto: $this->nombre. </p>";
         echo "<p>Precio: $this->precio € </p>";
         if ($this->precio_descuento) {
            echo "<p>Precio con descuento = $this->precio_descuento.</p>"; 
            }
            echo "<p>Descripción: $this->descripcion. </p>";
         }	
function Herramientas ($nomb,$prec,$imag,$desc,$reba) {
         $this->nombre=$nomb;
         $this->precio=$prec;
         $this->imagen=$imag;
         $this->descripcion=$desc;
         if ($reba) {
            $this->descuento($reba);
            }
         }	 
}
?>

En color morado está resaltada la función constructora. El resto del código es el mismo que teníamos en el ejemplo de la página anterior.

En esta función vamos dando al objeto los distintos valores para sus propiedades, los cuales los pasaremos en los argumentos de la función. Fíjate en el uso de la variable $this para referirnos al propio objeto que instanciamos.

Por otra parte en la página principal cambiaremos la forma de crear el nuevo objeto, primero definiremos una serie de variables que contienen las propiedades del objeto, y después se las pasaremos como argumento al instanciar el objeto.

En el archivo index.php de este ejemplo, cambiaremos el código que instancia y muestra el objeto por este otro:

<?php  
$nombre="Caja de herramientas tipo 1";
$precio = 60;
$imagen = "objetos/herramientas.gif";
$descripcion ="Caja completa de herramientas, 50 piezas calidad buena.";
$caja1 = new Herramientas ($nombre,$precio,$imagen,$descripcion,"20");
$caja1->mostrar();
?>

El código se muestra más sencillo, ya que no tenemos que definir las propiedades, sino que simplemente pasamos como argumento los valores de las propiedades.

Al pasar los argumentos debemos de tener cuidado de pasarlos en el mismo orden en que están en la función constructora para que cada uno de ellos se corresponda con la propiedad a la que corresponde.

Una vez pasados los argumentos, sólo tenemos que llamar a la función mostrar() para ver en pantalla el objeto.

Este ejemplo nos da como resultado una página (index.php) que la veremos en pantalla como en el siguiente enlace:

Funcion Constructora I


Como ves la página es muy similar al del ejemplo anterior, sin embargo tiene la ventaja de que ahora añadir a la página un nuevo objeto es mucho más fácil.

Veamos cómo se añade un nuevo objeto a la página de nuestro ejemplo, Como en cada objeto ponemos una imagen distinta, en primer lugar guardaremos la imagen que vamos a ponerle al objeto en la subcarpeta objetos, y la llamaremos herramientas2.gif. por si quieres crear el ejemplo a la vez que lo explicamos, la imagen es la siguiente:

Caja de herramientas2

Una vez copiada y guardada la imagen modificamos el código php anterior de la página index.php, añadiéndole las siguientes líneas:

<?php  
$nombre="Caja de herramientas tipo 1";
$precio = 60;
$imagen = "objetos/herramientas.gif";
$descripcion ="Caja completa de herramientas, 50 piezas calidad buena.";
$caja1 = new Herramientas ($nombre,$precio,$imagen,$descripcion,"20");
$caja1->mostrar();
echo "<hr  width='80%'/>"; 
$nombre="Caja de herramientas tipo 2";
$precio =80;
$imagen = "objetos/herramientas2.gif";
$descripcion ="Caja herramientas profesional, 70 piezas calidad excelente.";
$caja2 = new Herramientas ($nombre,$precio,$imagen,$descripcion,"20");
$caja2->mostrar();
?>

En morado está resaltado el nuevo código que hemos añadido, como ves es muy similar al anterior. La página index.php quedará ahora como en el siguiente enlace:

Funcion Constructora II


Como vemos, la creación de clases puede ser útil en algunas ocasiones, ya que si en principio requiere escribir más trozo de código, es posible que luego pueda simplificarnos mucho el trabajo.






Dentro de una clase pueden también crearse subclases o clases dependientes, esto lo veremos en la póxima página:

Subclases



manual de PHP

Anterior siguiente ... Siguiente siguiente


imprimir esta página

Página creada por ANYELGUTI.

Sugerencias: aprendeweb@aprende-web.net. Envia un manda un correo

Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog

Más sobre anyelguti en http://anyelguti.16mb.com