PHP: imprescindible para crear páginas web de modo profesional
Y ahora tambien aprende a programar en C++ con Aprende Web C++
y entérate de las novedades o deja un comentario.
última modificación: 13-07-2018.
Visitas este mes: 27
Visitas el mes pasado: 54
Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de este manual.:
Si este sitio te parece interesante puedes contribuir con una pequeña aportación.
En la página anterior vimos cómo crear un objeto, y cómo definir sus propiedades. Las propiedades son una característica del objeto, siempre almacenan un valor. Los métodos sin embargo representan acciones. Con un método indicamos al código que haga algo relacionado con el objeto, por ejemplo calcular un valor a partir de otros, sacar en pantalla algunas o todas las propiedades, etc.
Esto lo haremos mediante funciones, por lo tanto un método no es más que una función donde pedimos al código que haga algo con el objeto.
En la página anterior hemos creado una clase llamada Herramientas. Siguiendo con este ejemplo, crearemos en primer lugar un método que calcule el precio para artículos que tengan un tanto por ciento de descuento. el código de la clase Herramientas lo teníamos guardado en un archivo llamado clase_herramientas.php. Abrimos ese archivo con el editor de textos, el cual debe tener el siguiente código:
<?php class Herramientas { var $nombre="sin_nombre"; var $precio=0; var $imagen="../objetos/herramientas.gif"; var $descripcion; } ?>
En la clase herramientas (dentro de las llaves) escribiremos lo siguiente:
En primer lugar definimos una nueva variable.
var $precio_descuento;
Después escribiremos la función que crea el método, de modo que el archivo clase_herramientas.php 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;
}
}
?>
Explicaremos algunas cosas de esta función:
Por último en la página principal, (index.php) debemos añadir el código para poder visualizar la nueva propiedad, para ello en primer lugar llamaremos al método para que haga el cálculo del descuento.
$caja_herramientas->descuento(15);
Como ves la forma correcta de llamar a un método desde un objeto concreto es similar a la forma de llamar a una propiedad; es decir, mediante los signos -> .
$nombre_objeto->nombre_metodo()
El método, al igual que las funciones puede llevar parámetros, en este caso pasamos como parámetro el valor del tanto por ciento del descuento.
El método puede devolver también un valor de retorno, para ello utilizaremos al final de su código la instrucción return, de la misma manera que se hace con el resto de las funciones.
Dentro de la función a la nueva propiedad le hemos asignado como valor el resultado del método, por lo que llamamos a la nueva propiedad para mostrarlo en pantalla:
echo "<p>Precio con descuento = $caja_herramientas->precio_descuento.</p>";
En la página index.php, el código PHP para mostrar el objeto será el siguiente:
<?php
$caja_herramientas = new Herramientas;
$caja_herramientas->nombre = "Caja de herramientas";
$caja_herramientas->precio = 60;
$caja_herramientas->descripcion ="Caja completa de herramientas, 50 piezas calidad buena.";
echo "<img src='$caja_herramientas->imagen' alt='$caja_herramientas->nombre' width='200' align='left'>";
echo "<p>Producto: $caja_herramientas->nombre. </p>";
echo "<p>Precio: $caja_herramientas->precio € </p>";
$caja_herramientas->descuento(15);
echo "<p>Precio con descuento = $caja_herramientas->precio_descuento.</p>";
echo "<p>Descripción: $caja_herramientas->descripcion. </p>";
?>
En color morado hemos destacado las nuevas líneas que hemos añadido al código que ya teníamos antes.
La página principal ahora nos quedará como en el siguiente enlace:
Una vez que hemos visto cómo se crea un método, no nos será difícil crear un método que nos muestre las propiedades del objeto en pantalla.
Mediante este método evitaremos que, cada vez que creemos un objeto nuevo de la clase, tengamos que escribir el código para mostrarlo, ya que con una simple llamada al método, podremos mostrar el objeto.
La función que crea este método será la siguiente, la cual debemos ponerla dentro de las llaves que delimitan la clase Herramientas, en el archivo clase_herramientas.php.
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>"; }
Este código lo pondremos dentro de las llaves que delimitan la clase Herramientas, después de la función descuento.
El código de dentro de la función es similar al que utilizabamos para mostrar el objeto en pantalla, salvo algunos cambios:
Por otra parte en la página principal index.php, cambiaremos el código que crea y muestra el objeto concreto, de manera que suprimiremos todas las instrucciones echo; y en su lugar pondremos la llamada a la función mostrar(). Si queremos aplicar un descuento, debemos antes llamar a la función descuento($porcentaje), tal como hacíamos antes.
El código de la página index.php quedará así:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Herramientas</title> <?php include("clase_herramientas.php"); ?> </head> <body> <h1>Herramientas</h1> <?php $caja_herramientas = new Herramientas; $caja_herramientas->nombre = "Caja de herramientas"; $caja_herramientas->precio = 60; $caja_herramientas->descripcion ="Caja completa de herramientas, 50 piezas calidad buena."; $caja_herramientas->descuento(15); $caja_herramientas->mostrar(); ?> </body> </html>
La ventaja de aplicar este nuevo método es obvia en el caso de que tengamos que mostrar en pantalla varios objetos de esta misma clase, ya que con sólo llamar al método nos evitamos tener que escribir una y otra vez todas las instrucciones echo.
Veamos ahora el código completo de la página clase_herramientas.php, donde hemos guardado el código de la clase herramientas. Este debe 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>"; } } ?>
Por último vamos a ver como queda en pantalla la página principal tras los cambios realizados. para ello pulsa en el siguiente enlace:
El contenido de la página sigue siendo el mismo que en el ejemplo anterior, la diferencia está en la simplificación del código de la página principal.
En la siguiente página veremos otro tipo de funciones para objetos, las funciones constructoras.
Sugerencias:
aprendeweb@aprende-web.net. Envia un
Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog
Más sobre anyelguti en http://anyelguti.16mb.com