Anuncios

Bienvenidos sean a este post, hoy hablaremos sobre las funciones.

Anuncios

Las funciones podemos definirlas como accesos a un determinado bloque de instrucciones, dado que podemos evitar repetir unas lineas de instrucciones que se necesitan varias veces en el codigo simplemente creando una funcion que las ejecute cada vez que necesitemos de dichas instrucciones, veamos primero su sintaxis:

function nombre(argumentos)
{
    ... instrucciones ...
}
Anuncios

A diferencia de otros lenguajes no debemos establecer el tipo de dato que debe manejar la funcion sino que simplemente le pasamos la palabra clave function seguido del nombre que identificara a la misma, para llevar los dos parentesis que seran el operador final que lo identificara como funcion, estos tres elementos son obligatorios y no pueden faltar, en cambio los argumentos son opcionales, ya hablaremos de este tema con los ejemplos, despues tenemos un bloque donde iran las instrucciones de la funcion y hara su magia.

Anuncios

Parece simple y realmente lo es porque no tiene mas misterio, a medida que veamos los ejemplos se daran cuenta de la practicidad que nos brinda trabajar con funciones, pasemos al primer ejemplo que sera el mas simple de todos, para ello crearemos un archivo llamado funciones.php y le agregaremos el siguiente codigo:

funciones.php

<?php

function saludar()
{
	echo "Hola, Mundo!\n";
}

saludar();

?>
Anuncios

Este es el ejemplo mas basico que podemos crear, para ello creamos una funcion llamada saludar donde solamente nos devolvera un mensaje en pantalla, luego hacemos el llamado a la funcion, probemos el ejemplo y veamos su salida:

tinchicus@dbn001vrt:~/lenguajes/PHP$ php funciones.php 
Hola, Mundo!
tinchicus@dbn001vrt:~/lenguajes/PHP$
Anuncios

Tomemos este codigo y modifiquemos al mismo de la siguiente manera:

<?php

function saludar($nombre)
{
	echo "Hola, $nombre!\n";
}

saludar('Tinchicus');

?>
Anuncios

En este caso agregamos un argumento a la funcion para que informe el valor del mismo en el mensaje, lo bueno de php es que si pasamos la variable dentro del texto este se encarga automaticamente de concaternarlo, por ultimo modificamos el llamado a la funcion con el argumento a mostrar, su salida es la siguiente:

tinchicus@dbn001vrt:~/lenguajes/PHP$ php funciones.php 
Hola, Tinchicus!
tinchicus@dbn001vrt:~/lenguajes/PHP$
Anuncios

Como podemos ver ahora nuestra funcion no solamente muestra el mensaje sino que tambien lo personaliza pero que sucede si no pasamos un argumento? nos devolvera una excepcion como esta:

tinchicus@dbn001vrt:~/lenguajes/PHP$ php funciones.php 
PHP Fatal error:  Uncaught ArgumentCountError: Too few arguments to function saludar(), 0 passed in /home/tinchicus/lenguajes/PHP/funciones.php on line 8 and exactly 1 expected in /home/tinchicus/lenguajes/PHP/funciones.php:3
Stack trace:
#0 /home/tinchicus/lenguajes/PHP/funciones.php(8): saludar()
#1 {main}
  thrown in /home/tinchicus/lenguajes/PHP/funciones.php on line 3
tinchicus@dbn001vrt:~/lenguajes/PHP$
Anuncios

Pero este error se puede evitar porque PHP al igual que otros lenguajes nos da la opcion de poder tener un valor predeterminado para nuestros argumentos y en caso de no informarlo lo utilizara en su lugar, para ello debemos modificar el codigo anterior de la siguiente manera:

<?php

function saludar($nombre='Mundo')
{
	echo "Hola, $nombre!\n";
}

saludar();
saludar('Tinchicus');
?>
Anuncios

La primera modificacion es agregar al argumento un igual seguido del valor predeterminado, despues haremos dos llamados a la funcion donde primero lo haremos sin argumento y luego con un argumento, probemos y veamos su salida:

tinchicus@dbn001vrt:~/lenguajes/PHP$ php funciones.php 
Hola, Mundo!
Hola, Tinchicus!
tinchicus@dbn001vrt:~/lenguajes/PHP$
Anuncios

Observen como ahora nos muestra el valor predeterminado, dado que no informamos el valor del argumento en lugar de la excepcion anterior y luego vemos el mensaje con el argumento que pasamos, vamos a trabajar con una opcion interesante de las funciones, para ello debemos tomar el archivo bucle.php que vimos en este post pero antes de modificarlo veamos su codigo actual:

bucle.php

<?php

$rta="";
do
{
	$rta = readline("Ingresa un texto (q para salir):");
	if ($rta=="Q")
	{
		$rta="q";
	} else {
		$array = explode(" ", $rta);
		$rta = implode("_",$array);
		echo $rta . "\n";
	}
}
while($rta != "q");
echo "Gracias por usar el programa!\n";

?>
Anuncios

Y lo modificaremos de la siguiente manera:

<?php

function convertir($texto)
{
	$arreglo = explode(" ", $texto);
	$salida = implode("_",$arreglo);
	return $salida . "\n";
}

$rta="";
do
{
	$rta = readline("Ingresa un texto (q para salir):");
	if ($rta=="Q" || $rta=="q")
	{
		break;
	} else {
		$rta=convertir($rta);
		echo $rta;
	}
}
while($rta != "q");
echo "Gracias por usar el programa!\n";

?>
Anuncios
Anuncios

La primera modificacion importante que hicimos fue agregar una funcion llamada convertir que recibira un argumento, donde le agregaremos las dos lineas que se encargaban de transformar una cadena en array por medio de explode y luego lo volviamos a unir con implode pero reemplazabamos los espacios en blanco con guiones bajos pero en lugar de usar un echo usamos un return para devolver el valor contenido en salida, nuestra variable receptora del implode y le agregamos el modificador de nueva linea, esta es la funcion que agregamos para el codigo, el siguiente paso sera el codigo en si, donde seguimos guardando un texto que enviamos por medio de readline pero ahora el condicional verifica si rta es la letra q en mayusculas o minusculas y en cualquiera de los dos casos si es verdad procede a llamar a break para salir del bucle while, esta es una forma de salir sin cumplir la condicion, y ahora en el else tenemos la variable rta que recibira el resultado de la funcion convertir y observen que le pasamos a rta, no se preocupen porque este ultimo sera el valor ingresado y despues se reemplazara con la funcion, por ultimo mostramos el nuevo texto en rta, como pueden observar gracias a return pudimos trabajar una informacion y asignarla a una variable para poder ser procesada por otra funcion en caso de ser necesario, por ultimo tenemos todavia el ciclo donde verifica si rta es distinto de q para repetirlo, finalizando con el mensaje de siempre, vamos nuevamente a probarlo mediante el siguiente video

Anuncios

En el video vemos que el programa sigue trabajando de la misma forma pero con un codigo mas «monono», y en caso de necesitar trabajar otra vez con esa funcion solo necesitamos llamarlo desde la parte del codigo que haga falta.

Anuncios

En resumen, hoy hemos visto funciones, como son, para que sirvan, como nos ayudan con nuestros codigos, las distintas formas de definirlas y utilizarlas, por ultimo hemos visto un par de ejemplos practicos para verlos en acciones, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50