Una de las herramientas ms importantes en cualquier lenguaje de programacin son las
funciones. La funcin es definida como un conjunto de instrucciones que explotan ciertas variables para realizar una tarea ms o menos elemental, por lo tanto es necesario conocerlas. Existen funciones creadas por los programadores, as como funciones propias de PHP. En los siguientes apartados se estudiarn algunas de ellas. Conocer que es una funcin en PHP. Distinguir las partes en las que se compone una funcin. Aprender a crear una funcin personalizada. Conocer algunos tipos de funciones propios de PHP. Una funcin consiste en un conjunto de rutinas y acciones que a lo largo del script van a ser ejecutadas multitud de veces. Agrupadas en una funcin, las instrucciones pueden ser llamadas y ejecutadas desde cualquier punto del script. A su vez, esta funcin puede recibir parmetros externos de los cuales dependa el resultado de una funcin
PHP basa su eficacia principalmente en este tipo de elemento. Una gran librera que crece constantemente, a medida que nuevas versiones van surgiendo, es complementada con las funciones de propia cosecha, dando como resultado un sinfn de recursos que son aplicados por una simple llamada.
Las funciones integradas en PHP son muy fciles de utilizar. Tan slo se debe realizar la llamada de la forma apropiada y especificar los parmetros y/o variables necesarios para que la funcin realice su tarea.
Lo que puede parecer ms complicado, pero que resulta mejor, es crear nuestras propias funciones. De una forma general, podramos crear nuestras propias funciones para conectarnos a una base de datos o crear los encabezados o etiquetas meta de un documento HTML. Para una aplicacin de comercio electrnico podramos crear por ejemplo funciones de cambio de una moneda a otra o de clculo de los impuestos a aadir al precio de un artculo. En definitiva, es interesante crear funciones para la mayora de acciones ms o menos sistemticas que realizamos en nuestros programas.
Para definir una funcin se utiliza la siguiente sintaxis: function nombre_funcion(parametro1, parametro2...) { instruccin1; instruccin2; instruccin3; instruccin4;
return valor_de_retorno; }
En el esquema anterior podemos distinguir varias partes: La primera lnea es la cabecera de la funcin, que, a su vez, consta de: La palabra clave function El nombre de la funcin que no debe llevar acentos, espacios en blanco, ni caracteres especiales. Encerrada entre parntesis, la lista de parmetros que consta de una serie de parmetros separados por comas ','. Los parmetros (o argumentos) son variables y/o constantes que establecen una "comunicacin" entre partes del cdigo, y que se tratarn como variables locales dentro de la funcin.
El resto es el cuerpo de la funcin, que consta de una sucesin de instrucciones encerradas entre llaves. Cualquier instruccin vlida de PHP puede aparecer en el cuerpo de la funcin, incluso otras funciones y definiciones de clases. Si se quiere que la funcin devuelva como resultado algn valor, habr que aadir una instruccin compuesta por el comando return seguido del valor que ser devuelto por la funcin.
Las funciones deben ser colocadas siempre antes de realizar la llamada a la funcin.
function nombre (parmetros){ instrucciones de la funcin }
Para llamar a la funcin sera de la siguiente forma: nombre (parmetros)
Un ejemplo: Se crear una funcin que realice la suma de dos nmeros y muestre el resultado.
function sumar($sumando1,$sumando2){ $ suma=$sumando1+$sumando2 echo $sumando1."+".$sumando2."=".$suma; } sumar(5,6)
Luego se puede crear una funcin que se puede utilizar como el encabezado de un documento HTML y colocar el titulo que queremos a la pgina: <? function hacer_encabezado($titulo) { $encabezado="<html><head>t<title>$titulo</title></head>"; echo $encabezado; } ?>
Esta funcin podra ser llamada al principio de todas nuestras pginas de la siguiente forma: $titulo="Mi web"; hacer_encabezado($titulo);
De esta forma automatizamos el proceso de creacin de nuestro documento. Podramos por ejemplo incluir en la funcin otras variables que nos ayudasen a construir las etiquetas meta y de esta forma, con un esfuerzo mnimo, se crearan los encabezados personalizados para cada una de nuestras pginas. De este mismo modo, es posible crear cierres de documento o formatos diversos para nuestros textos como si se tratase de hojas de estilo que tendran la ventaja de ser reconocidas por todos los navegadores.
La funcin ha de ser definida dentro del script ya que no se encuentra integrada en PHP sino que la se ha creado. Esto en realidad no pone ninguna pega ya que puede ser incluida desde un archivo en el que iremos almacenando las definiciones de las funciones que vayamos creando o recopilando.
Estos archivos en los que se guardan las funciones se llaman libreras. La forma de incluirlos en nuestro script es a partir de la instruccin require o include.
require("libreria.php") o include("libreria.php")
require es idntico a include excepto que en caso de fallo producir un error fatal de nivel E_COMPILE_ERROR. En otras palabras, ste detiene el script mientras que include slo emitir una advertencia (E_WARNING) lo cual permite continuar el script.
En resumen, se tendra un archivo libreria.php como sigue:
<? //funcin de encabezado y colocacin del titulo function hacer_encabezado($titulo) { $encabezado="<html>n<head>nt<title>$titulo</title>n</head>n"; echo $encabezado; } ?>
Por otra parte tendramos nuestro script principal pgina.php (por ejemplo):
<? include("libreria.php"); $titulo="Mi Web"; hacer_encabezado($titulo); ?> <body> El cuerpo de la pgina </body> </html>
Podemos meter todas las funciones que vayamos encontrando dentro de un mismo archivo, pero resulta mejor ir clasificndolas en distintos archivos por temtica: Funciones de conexin a bases de datos, funciones comerciales, funciones generales, etc. Esto nos ayudar a localizarlas antes para corregirlas o modificarlas, nos permite tambin cargar nicamente el tipo de funcin que se necesita para el script, sin recargar ste en exceso; adems de permitir utilizar un determinado tipo de librera para varios sitios webs distintos.
Tambin puede resultar, utilizar una nomenclatura sistemtica a la hora de nombrarlas: Las funciones comerciales podran ser llamadas com_ejemplo, las de bases de datos bd_ejemplo, las de tratamiento de archivos file_ejemplo. Esto nos permitir reconocerlas enseguida cuando leamos el script sin tener que recurrir a nuestra oxidada memoria para descubrir su utilidad.
No obstante, antes de lanzarnos a crear nuestra propia funcin, merece la pena echar un vistazo a la documentacin para ver si dicha funcin ya existe o podemos aprovecharnos de alguna de las existentes para aligerar nuestro trabajo. As, por ejemplo, existe una funcin llamada header que crea un encabezado HTML configurable lo cual nos evita tener que crearla nosotros mismos.
Ejercicio: Hacer una funcin que recibe un texto y lo escribe en la pgina con cada carcter separado por "-". Es decir, si recibe "hola" debe escribir "h-o-l-a" en la pgina web.
Solucin: La manera de realizar esta funcin ser recorrer el string, caracter a caracter, para imprimir cada uno de los caracteres, seguido de el signo "-". Se recorre el string con un bucle for, desde el carater 0 hasta el nmero de caracteres total de la cadena.
El nmero de caracteres de una cadena se obtiene con la funcin predefinida en PHP strlen(), que recibe el string entre parntesis y devuelve el nmero de los caracteres que tenga.
<html> <head> <title>funcion 1</title> </head> <body> <? function escribe_separa($cadena){ for ($i=0;$i<strlen($cadena);$i++){ echo $cadena[$i]; if ($i<strlen($cadena)-1) echo "-"; } }
escribe_separa ("hola"); echo "<p>"; escribe_separa ("Texto ms largo, a ver lo que hace"); ?> </body> </html>
La funcin que hemos creado se llama escribe_separa y recibe como parmetro la cadena que hay que escribir con el separador "-". El bucle for nos sirve para recorrer la cadena, desde el primer al ltimo carcter. Luego, dentro del bucle, se imprime cada carcter separado del signo "-". El if que hay dentro del bucle for comprueba que el actual no sea el ltimo carcter, porque en ese caso no habra que escribir el signo "-" (queremos conseguir "h-o-l-a" y si no estuviera el if obtendramos "h-o-l-a-").
En el cdigo mostrado se hacen un par de llamadas a la funcin para ver el resultado obtenido con diferentes cadenas como parmetro. Podemos ver el script en marcha.
Existen casos en los cuales no sabemos el nmero de parmetros que le pasaremos a la funcin y en estos casos debemos usar las funciones creadas al efecto como son:
func_num_args() Numero de parmetros que se le han pasado a la funcin.
func_get_args() Devuelve un elemento de los que forman la lista de argumentos.
Vamos a ver algunas de las muchas funciones del lenguaje PHP, que nos ayudarn en las acciones ms comunes.
echo y print El cdigo PHP no se muestra en la pgina. Por eso, si queremos escribir cdigo HTML, debemos de hacerlo utilizando las funciones echo o print. Ambas funciones se comportan casi igual. Escribir el texto que le pasemos como parmetro.
Existe una diferencia entre pasarle el texto entre comillas simples o comillas dobles. Si el texto, va entre comillas simples, se mostrar tal cual, mostrando el nombre de las variables que pueda incluir, y sin convertir caracteres escapados. Si le pasamos el texto entre comillas dobles, se imprimir el valor de las variables, y se convertirn los caracteres escapados.
isset La funcin isset($variable), comprueba si una variable ha sido definida. Devuelve verdadero si lo ha sido y falso si no.
mail La funcin mail enva un correo electrnico. Tiene la siguiente estructura: mail("email_destino", "asunto", "cuerpo_mensaje"); donde "email_destino" es la direccin de correo a la que queremos enviar el mensaje, "asunto" es el asunto del mensaje, y "cuerpo_mensaje" es el contenido del mensaje.
strip_tags Elimina el cdigo HTML de una cadena. strip_tags("<p class="centrado">Hola <span>mundo</span></p>")
trim Quita los espacios al principio y final de una cadena. trim(" Hola mundo ")
ceil Redondea un valor numrico a un entero mayor. ceil(2.5) devuelve 3 ceil(2.1) devuelve 3
count Devuelve el nmero de elementos que hay en un array.
header Nos permite escribir la cabecera de la pgina.
exit Finaliza la ejecucin del cdigo PHP.
CONTROL DE LECTURA
A continuacin, se le presentan una serie de enunciados, conteste Falso o Verdadero segn corresponda.