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: 29
Visitas el mes pasado: 41
Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de este manual.:
Por elegir aprende-web
Aprende-web está diseñado a partir de los lenguajes que aquà mismo se enseñan.
By Anyelguti
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.
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úsPodemos 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úsFí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.
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.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:
El código completo (con PHP) del ejemplo del enlace anterior puedes verlo en este otro enlace:
En el siguiente tema veremos las funciones predefinidas de PHP.
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