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

Visitas el mes pasado: 47

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.




9. Crear funciones (III)

9.3 Argumentos y return

php

Introducción

En primer lugar recordar que los argumentos o parámetros de una función, son los valores que ponemos entre paréntesis después de su nombre. Hay diferentes formas de definir cómo se van a pasar esos valores. Cada una de estas formas hace que los argumentos se ejecuten de diferentes maneras.


Pasar argumentos por valor

La forma más normal de pasar argumentos o parámetros a una función es pasarlos por valor, es la forma vista hasta ahora.

function miFuncion($a,$b) ...

La característica principal es que una vez pasados los argumentos, podemos cambiarles el valor dentro de la función, pero las variables que hemos utilizado, fuera de la función, seguirán teniendo el mismo valor que tenían antes.

Veamos un ejemplo, en el siguiente código se muestra el valor de una variable dentro y fuera de la función.

<?php  
$a="autobús";
echo "\$a = $a <br/>";
function transporte($a) {
         $a="tranvía";
         echo "valor de \$a dentro de la función: $a. <br/>";		 
         }
transporte($a);
echo "salgo de la función, valor de \$a: $a";
?>

El código anterior se mostrará en pantalla de la siguiente manera:

$a = autobús
valor de $a dentro de la función: tranvía.
salgo de la función, valor de $a: autobús


Pasar argumentos por referencia

Podemos también pasar los argumentos de forma que al modificar dentro de la función el valor de la variable que pasamos, se modifica también el valor fuera de ella. Esto es pasar los argumentos por referencia.

Para ello escribimos un signo amperstand & delante del argumento que queramos pasar por referencia:

function miFuncion(&$a,&$b) ...

Veamos el ejemplo anterior, con el parámetro pasado por referencia: el código será el siguiente:

<?php  
$a="autobús";
echo "\$a = $a <br/>";
function transporte(&$a) {
         $a="tranvía";
         echo "valor de \$a dentro de la función: $a. <br/>";		 
         }
transporte($a);
echo "salgo de la función, valor de \$a: $a";
?>

Y ahora el resultado en pantalla de este código será este:

$a = autobús
valor de $a dentro de la función: tranvía.
salgo de la función, valor de $a: tranvía

Fíjate que lo único que ha cambiado respecto al ejemplo anterior es el signo & al definir el argumento, sin embargo es suficiente para que el valor de la variable que pasamos cambie también fuera de la función.


Pasar argumentos por defecto.

Esta es una forma de definir un argumento, de tal manera, que si al llamar a la función no le pasamos este argumento, éste tenga un valor predeterminado.

En este caso al definir el argumento le daremos un valor, el cual será el valor que tenga por defecto. Para ello asignaremos este valor al argumento:

function miFuncion($a="valor1",$b="valor2") ...

En el siguiente código vemos cómo aplicar un valor por defecto a un argumento:

<?php  
function deportes($a="futbol") {
         echo "valor de \$a: $a.<br/>";		 
         }
deportes();
?>

Como no hemos pasado ningún argumento al llamar a la función, ésta toma su valor por defecto, en pantalla muestra lo siguiente:

valor de $a: futbol.

Sin embargo, si pasamos un argumento al llamar a la función, ésta mostrará el argumento que pasemos. Cambiamos el código anterior:

<?php  
function deportes($a="futbol") {
         echo "valor de \$a: $a.<br/>";		 
         }
deportes("baloncesto");
?>

Ahora en pantalla se mostrará lo siguiente:

valor de $a: baloncesto.


Retorno de valores

Como hemos visto una función puede calcular un valor, y devolverlo al flujo de la página mediante la instrucción return.

En principio una función no puede devolver más que un valor, sin embargo podemos hacer que devuelva más de un valor, usando el truco de sacarlos de la función dentro de un array. usaremos el valor return de la siguiente manera:

return array ($resultado1,$resultado2);

Después fuera de la función convertimos cada uno de esos valores del array en una variable independiente mediante la insttrucción list(), de la siguiente manera:

list($variable1,$variable2) = nombreFunción();

a partir de aquí la $variable1 será una variable independiente, que podemos usar fuera del array, y que tendrá el valor pasado en la función en $resultado1. Lo mismo pasa con la $variable2, la cual toma el valor de $resultado2. y con el resto de variables que pasemos, las cuales tomarán el valor del array de retorno en el orden en el que las pongamos.

Fíjate que la instrucción list() tenemos que asignarle (signo =) el valor de la llamada a la función. Si la función necesita argumentos, debemos ponerlos también al llamarla.

Veamos un ejemplo, en el que calculamos el descuento que se puede aplicar al precio de algunos artículos. Para ello primero pedimos que se rellene un formulario:

<form action="#" method="post">
<p>Precio inicial: <input type="text" name="precio" /></p>
<p>Aplicar descuento del: 
  5%: <input type="radio" name="des" value="5" />. .
  10%: <input type="radio" name="des" value="10" />. .
  20%: <input type="radio" name="des" value="20" />. .
  30%: <input type="radio" name="des" value="30" />
</p>
<p><input type="submit" value="Ver resultado" /></p>
</form>

Después en PHP escribimos la función que calcula tanto la cantidad ahorrada en el descuento, como el precio final del artículo, y devolvemos los dos valores en un array:

function rebajas($base,$dto=0) {
         $ahorro = ($base*$dto)/100;
         $final = $base-$ahorro;
         return array($ahorro, $final);
         }

Seguimos en PHP, recogemos los valores del formulario, llamamos luego a la función, recogiendo los valores de retorno mediante la instrucción list() y los sacamos en pantalla:

$precio=$_POST['precio'];
$descuento=$_POST['des'];			 
list($rebaja,$precioFinal)=rebajas($precio,$descuento);
echo "Precio inicial: $precio. <br/>";
echo "artículo rebajado en un $descuento%. <br/>";
echo "Este artículo está rebajado en $rebaja €. <br/>";
echo "Precio final del artículo: $precioFinal €.";

El resultado será algo parecido a lo que se muestra en el siguiente enlace:

Retorno múltiple


El código completo (con PHP) del ejemplo del enlace anterior puedes verlo en este otro enlace:

Código de "Retorno múltiple"





En el siguiente tema veremos las funciones predefinidas de PHP.

Funciones predefinidas.



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