PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener...

19
PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario Definición de Funciones Include() y Requiere() Recursividad Funciones Variables

Transcript of PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener...

Page 1: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos

Tema 5 FuncionesIntroducción

Valor de una Función

Función para obtener fecha actual.

Documentación de Funciones

Funciones de Usuario

Definición de Funciones

Include() y Requiere()

Recursividad

Funciones Variables

Page 2: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 2

Introducción

Las funciones son grupos de instrucciones independientes que tienen un propósito determinado.

La sintaxis básica de una función es la siguiente:

nombre_función( parámetro1, parámetro2, parámetro3 ... parámetro_n)

Las funciones pueden ser llamadas con varios parámetros o con ninguno, dependiendo de su definición. Cuando PHP encuentra en el código la llamada a una función, primero, evalúa cada argumento y los utiliza como parámetro de entrada. Después, ejecuta la función y devuelve el valor solicitado o realiza alguna acción sin enviar ningún valor de salida.

f

Page 3: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 3

Valores de las Funciones

Cada función en PHP se considera como una expresión. Se pueden utilizar las funciones para lo mismo que se utilizan las expresiones, como almacenar su resultado en una variable o formar parte de una expresión más compleja.

No todas las funciones devuelven un valor numérico. También pueden devolver caracteres, array o true/false si la función ha tenido éxito o no. Este tipo de funciones se utiliza para conectar a bases de datos, escribir a ficheros de texto, manipular imágenes, etcétera. f

Page 4: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 4

Función para obtener fecha actualExisten un conjunto de funciones que permiten averiguar la fecha actualdel sistema. Una de estas funciones es date( ) , que permite recuperar elaño, día, mes, etcétera, del momento en el que se hace la consulta. Paraaveriguar el día de hoy podemos utilizar la construcción:

<?date("d") ;?>

El parámetro que pasamos entre paréntesis indica a la función el formato de fecha que queremos obtener. En este caso, la “d” indica que queremos obtener el día en formato numérico.

Page 5: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 5

Función para obtener fecha actualLa siguiente tabla relaciona los caracteres dentro de la función date() con su aplicación práctica:

Page 6: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 6

Documentación de Funciones

Desde sus inicios, PHP se diseñó para que fuera sencillo de utilizar y de extender por la comunidad de desarrolladores. La potencia reside en la gran cantidad de funciones escritas de todo tipo. Por esta razón es imprescindible tener como referencia la guía on-line de PHP en www.php.net, donde podemos encontrar clasificadas por temática todas las funciones existentes hasta ahora.

A continuación veremos algunas de las funciones más comunes en PHP, las cuales podemos clasificar en:

-Funciones Matemáticas

-Funciones de Cadenas

-Funciones de Fecha y hora

Page 7: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 7

Funciones de Usuario

Para realizar programas complejos en PHP 5, no es necesario escribir funciones. Se pueden escribir programas utilizando todo lo aprendido hasta ahora. A medida que el proyecto se haga más complejo, el código se hará más extenso y menos legible. En este punto deberíamos comenzar a pensar en crear funciones que realicen determinadas tareas.

Page 8: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 8

Definición de Funciones

El formato es el siguiente:

function nombre_función($argumentol, $argumento2, ..){

instrucción1;instrucción2;instrucción3;}

Ejemplo: Función que realice la suma de dos números

Page 9: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 9

Parámetros Insuficientes

Si llama a una función con menos parámetros de los que debe utilizar por definición aparecerá el siguiente error por defecto:

Warning: Missing argument 1 for …

Page 10: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 10

Parámetros en exceso

Si al contrario que en el apartado anterior le pasa a una función más parámetros que los definidos, éstos serán omitidos y la ejecución continuará normalmente sin ningún mensaje de error. Esta propiedad de PHP 5 permite utilizar variables con un número de parámetros variable.

Page 11: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 11

Ámbito de las variables

Las variables definidas en un archivo de PHP permanecen declaradas en todo el fichero, menos en las funciones. Las funciones crean un entorno de ejecución donde sólo pueden ver las variables que están dentro de las mismas. Aunque no parece muy lógico, esto nos permite tener variables con el mismo nombre en diferentes funciones, haciendo el código reutilizable.

Page 12: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 12

Variables estáticas

Por defecto, las funciones que creamos en PHP 5 no retienen en memoria el valor de las variables que se utilizan. Cada llamada a una función implica la nueva creación de las variables locales con su valor inicial. La declaración static añadida a una variable causa que la función retenga en memoria el valor de esa variable en cada llamada.

<?phpfunction contador() {

static $contador = 0;$contador = $contador + 1;return $contador;

}for ($x = 1; $x <= 100; $x++) {

echo contador() ." , ";}?>

Page 13: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 13

include() y require()

A medida que un proyecto se hace más complejo, comenzaremos a crear funciones muy útiles para conectar a bases de datos, crear imágenes al vuelo, conectar por FTP, etcétera y, seguramente, vamos a querer emplear estas funciones en otros proyectos distintos para ahorrar tiempo. El camino para hacer esto es muy sencillo. Sólo tenemos que guardar las funciones necesarias en un fichero con extensión php, htm, css, etcétera y utilizar las directivas include() o require() desde la página en que vayamos a utilizarlas.

El formato es el siguiente:

require "base_datos.php";include "contador_vistas.php";

En PHP 5 no existen apenas diferencia entre ambas funciones, salvo que la función include() es más tolerante a fallos que require() y permite continuar la ejecución del programa aunque se haya encontrado un fallo.

Page 14: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 14

Recursividad

Las funciones recursivas son aquellas capaces de llamarse a sí mismas. Como único requisito es que haya una forma de salir en la llamada recursiva

<?phpfunction factorial($numero){

if ($numero == 1) {return $numero;

} else {return $numero * factorial($numero-l);

}}echo "El factorial de 7 es ". factorial(7) ." <br>";?>

Page 15: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 15

Argumentos Variables

PHP ofrece algunas funciones que pueden ser utilizadas para recuperar los argumentos.

• func_num_args(): Devuelve el número de argumentos que recibe la función desde la que es llamada.• func_get_arg(): Devuelve uno a uno los argumentos pasados de la siguiente forma: func_get_arg(0), func_get_arg(l), func_get_arg(5).• func_get_args(): Devuelve un array con todos los argumentos pasados a la función, con los índices del array empezando desde 0.

Page 16: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 16

Argumentos Variables

<?phpfunction concatenar() {

$resultado = "" ;$numero_argumentos = func_num_args();

for ($x = 0; $x < $numero_argumentos; $x++){$array_parametro = func_get_arg($x);$resultado = $resultado.$array_parametro;

}return $resultado."<br>" ;

}echo concatenar("Hola ","Mundo");echo concatenar("Esto ","es ","una ","prueba ","de", "la potencia"," de este"," método");

?>

Page 17: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 17

Llamadas por valorPor defecto, las llamadas a funciones se hacen por valor. Esto quiere decir que las variables que se utilizan como parámetros se copian al entorno de la función. Todos los cambios de valor que sufra la variable en este entorno no afectarán al programa fuera de la función.

<?phpfunction elevado($nuraero,$ índice) {

$resultado = $numero;for ($x = $indice; $x > 0; $x--) {

$resultado = $resultado * $nuraero;}$numero = $resultado;return $numero;

}$numero = 2;$indice = 5;echo $numero." elevado a ".$indice." es igual a".elevado($numero,$ indice) ."<br>";echo $numero." elevado a ".$indice." es igual a".elevado ($numero,$ indice) ."<br>";?>

Page 18: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 18

Llamadas por referenciaPHP 5 ofrece actualmente dos caminos diferentes para cambiar sus argumentos: en la definición de la función y en la llamada a la misma. Las variables pasadas por referencia pueden ser modificadas durante el proceso de una llamada, porque lo que se pasa no es una copia, sino la variable en sí misma. Para pasar variables por referencia hay que utilizar el operador (&) delante de la variable.

<?phpfunction elevado(&$numero,&$indice) {

$resultado = $numero;for ($x = $índíce; $x > 0; $x--) {

$resultado = $resultado * $numero;}$numero = $resultado;return $numero;

}$numero = 2 ;$ índice = 5;echo $numero." elevado a ".$indice." es igual a" .elevado($numero,$ indice) ."<br>";echo $numero." elevado a ".$indice." es igual a".elevado($numero,$ indice) ."<br>";?>

Page 19: PHP con Bases de Datos Tema 5 Funciones Introducción Valor de una Función Función para obtener fecha actual. Documentación de Funciones Funciones de Usuario.

PHP con Bases de Datos Page 19

Funciones variables

Uno de los trucos que se pueden hacer con PHP es utilizar variables para almacenar el nombre de funciones. Si una variable almacena el nombre de una función, simplemente tendrá que añadir unos paréntesis al final de la variable para hacer la llamada correctamente

<?phpfunction saludo_maniana() {

return ("Buenos Días");}function saludo_tarde() {

return ("Buenas Tardes");}function saludo_noche() {

return ("Buenas Noches");}$horario = "tarde";$funcion_variable = "saludo_".$horario;echo $funcion_variable () ;?>