Objetivos:
- Introducción a las funciones
- Creación de formularios
- Utilizar los métodos POST y GET para envío de información de formularios.
FUNCIONES.
Una función es un bloque de código que realiza una o varias tareas específicas. Tiene un nombre
con el cual la podemos identificar para llamarla y también puede recibir una serie de valores
llamados parámetros o argumentos. Además, posee la posibilidad de devolver un único valor.
Las funciones pueden ser llamadas todas las veces que sean necesarias y su principal ventaja es
que nos permiten reutilizar código, para no tener que volver a escribirlo.
De esta forma, por ejemplo, podríamos tener una función que dado un número (parámetro),
determine si es primo o no devolviendo true si lo es y false en caso contrario (valor de retorno).
O podríamos construir una función que dada una serie de números calcule el promedio de todos.
O una que reciba un array con strings y devuelva un nuevo string con una lista ordenada en
HTML donde cada elemento de la lista se corresponda con cada ítem del array.
Los parámetros son siempre opcionales. Podemos hacer funciones que no reciban nada. Y a
diferencia de otros lenguajes, el valor de retorno también lo es. Especial cuidado quienes estén
acostumbrados a programar por ejemplo en C, donde siempre debe especificarse un tipo de
retorno (si no se devuelve nada, debe especificarse void). Lo único que debe tenerse en cuenta
es que cuando se construye una función y no se devuelve nada, PHP devolverá el tipo null.
PHP trae una gran variedad de funciones para realizar tareas puntuales. Por ejemplo las de
manejo de strings: strlen, strpos y substr, entre otras; o las que sirven para operar arrays como
in_array, array_flip, array_reverse y otras más que hemos conocido.
A pesar de ser propias del lenguaje, se basan en las mismas reglas que cualquier otro tipo de
función. Reciben parámetros opcionalmente, realizan una tarea y pueden o no devolver algún
valor.
Ninguna función que construyamos puede tener el mismo nombre que otra ya existente,
incluyendo las que trae PHP.
Para definir una función propia, se escribe la palabra clave function seguida del nombre de la
función. A continuación, abrir paréntesis y si hay parámetros se ingresan dentro del paréntesis
separados por comas. Se abre llaves y dentro de ellas se escribe el bloque de código donde se
escriben las instrucciones.
//bloque de instrucciones
Ejemplo:
function saludar(){
echo “Mensaje”;
//llamado a la función
saludar()
Valor de retorno
function sumar(){
$a=5;
$b=20
return $a+$b;
//llamado a la función
sumar()
PASO DE PARÁMETROS.
Por valor.
En el pasaje por valor la variable que llega a la función puede ser modificada, pero su valor
original no.
Ejemplo:
function ejemploxValor($var){
$var=10;
$fuera=2;
ejemploxValor($fuera);
Por referencia.
En el pasaje por referencia el valor de la variable original que es pasada como argumento
puede sufrir cambios si es que se realizan dentro de la función.
Ejemplo:
function ejemploxReferencia(&$ref){
$ref=25;
$fueraRef=10;
ejemploxReferencia($fueraRef);
Si es necesario, en PHP es posible pasar una cantidad de parámetros variables a una función.
Esto se hace con tres funciones específicas para esto: func_num_args(), func_get_arg() y
func_get_args().
Ejemplo:
function frutas() {
if (func_num_args() > 0) {
$params = func_get_args();
foreach($params as $frutas)
echo '<br/>';
$frutas1 = "Manzana";
$frutas2 = "Fresa";
frutas($frutas1,$frutas2);
Ejercicio: librería funciones.
libreria.php
Utilizando librería.
Tanto require() como include() hacen el mismo trabajo, de traerse código que hay en archivos
diferentes dentro del servidor, para que se pueda utilizar al crear una página. La diferencia
fundamental entre require e include es que la primera requiere forzosamente algo y la otra no.
Es decir, si hacemos un require() de un archivo y éste no se encuentra disponible por cualquier
motivo, PHP parará la ejecución del código y devolverá un "Error fatal". Si por el contrario
hacemos un include() y el archivo que tratamos de traer no se encuentra disponible, entonces
lo que PHP nos mostrará es una señal de advertencia, un "warning", pero tratará de seguir
ejecutando el programa.
principal.php
Modifique el ejemplo anterior de tal manera que incluya un archivo de estilo.
MANEJO DE FORMULARIOS.
Cuando un usuario rellena un formulario en una página web los datos hay que enviarlos de
alguna manera. Vamos a considerar las dos formas de envío de datos posibles: usando el método
POST o usando el método GET.
METODO GET.
GET lleva los datos de forma "visible" al cliente (navegador web). El medio de envío es la URL.
Los datos los puede ver cualquiera.
http://localhost:8080/probando.php?param1=5¶m2=22
METODO POST.
POST consiste en datos "ocultos" (porque el cliente no los ve) enviados por un formulario cuyo
método de envío es post. Es adecuado para formularios. Los datos no son visibles.
La ventaja de usar POST es que estos datos no son visibles al usuario de la web. En el caso de
usar get, el propio usuario podría modificar la URL escribiendo diferentes parámetros a los reales
en su navegador, dando lugar a que la información tratada no sea la prevista.
Las peticiones HTTP del tipo POST suelen proporcionar información adicional del cliente
(navegador) al servidor dentro del cuerpo del mensaje. Las peticiones GET, por otro lado,
incluyen toda la información requerida o necesaria dentro del URL (localizador de recursos
uniforme). Los formularios en HTML pueden usar cualquiera de estos dos métodos solo si se
especifica si es POST (method=POST) o si es GET (method=GET) dentro del elemento <form>.
Este último suele ser el sugerido por default. El método que sea elegido y especificado
determina la forma en la que la información será enviada al servidor. Cuando se usa el método
GET, la información se encontrará codificada dentro del URL, anexada a éste como parámetros
de la cadena de consulta. En cuanto al uso de POST, los formularios aparecen incluidos dentro
del cuerpo del mensaje de la petición HTTP.
GET POST
Para el ejercicio se van a crear dos archivos uno donde se cree el formulario y otro que será el
encargado de manejar los datos enviados.
formulario.php
procesar.php
Se pide:
1. Modificar el ejercicio 1 y evaluar si el campo de texto está vacío, si está vacío enviar un
mensaje como se muestra a continuación:
EJERCICIOS PROPUESTOS.
1. Realizar una función que reciba dos números como parámetros y los multiplique.
2. Realizar una función que reciba un array de notas de 10 estudiantes, deberá mostrar la
nota promedio.
3. Realizar una función que reciba un array de 5 números y determine cuál es el mayor.
4. Diseñe un formulario que solicite los datos personales:
Cree una función que procese los datos con un array, y los muestre en pantalla.