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: 28

Visitas el mes pasado: 46

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 (II)

15.2 Metodos en objetos

php

Definición de método.

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.


Crear un método

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:

Métodos en objetos I.



Método para ver el objeto en pantalla

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:

Métodos en objetos II.


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.

Funciones constructoras.



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