Aprende como extraer varios valores de una función con un arreglo (array) en PHP y utilizando la sentencia return.

Share on Pinterest
Comparte con tus amigos










Enviar

En PHP no podemos crear una variable dentro de una función y simplemente utilizarla fuera de esta, para eso es que existe la sentencia return que nos permite extraer un valor de nuestra función. Pero que pasa si necesitamos sacar varios valores? Para eso lo que tendríamos que hacer es crear un arreglo con los valores que necesitemos sacar de la función y mediante return sacar ese arreglo.

Puede ser un poco confuso sobre todo a la hora de intentar acceder a ese arreglo fuera de la función, asi que escribo este post para explicarlo ya que en su momento esto me causo algunas confusiones.

Como extraer un arreglo de una función con return

Para poder explicar el ejemplo de forma mas interactiva hice que nuestra aplicación en php tomara un nombre y separara cada letra con un salto de linea, es algo muy sencillo pero estaremos utilizando funciones, arreglos y ciclos, asi que empecemos primero que nada por crear la función.

function saludo($nombre){
	echo "Bienvenido, ". $nombre. "<br/>";
	for ($i = 0; $i < strlen($nombre); $i++){
		$cadena[$i] = substr($nombre, $i, 1);
	}
	return $cadena;
}

Como puedes ver nuestra función recibe como parámetro una funcion llamada $nombre, que como es logico contendra la cadena de texto con el nombre al que queremos mandar un saludo y al que queremos dividir cada letra.

La primera linea de la funcion no tiene pierde, simplemente estamos imprimiendo el nombre concatenado al saludo de bienvenido.

Después de esta linea es donde comenzamos con lo interesante, creamos un ciclo for que se va a repetir mientras que nuestra variable $i sea menor que la longitud de nuestra variable $nombre.

Para saber la longitud de la variable utilice una función llamada strlen()  que nos devuelve el total de numero de caracteres que tenga nuestra cadena de texto. Dentro de nuestro ciclo, en cada iteración lo que vamos a hacer es empezar a llenar un arreglo llamado $cadena, en cada posición vamos a ir guardando una letra del nombre, para extraer los caracteres utilizamos una función llamada substr(), la cual recibe 3 parámetros en este caso, la variable a la cual queremos extraer un trozo de texto, un numero que sera desde donde comience a cortar y otro numero que sera el que indique cuantos caracteres cortara a partir de donde le indicamos con el primer numero. En este caso como estoy utilizando un ciclo para ir avanzando de letra en letra, el primer numero de nuestra función substr() lo vamos a ir cambiando con la variable $i que es nuestro indice del arreglo.

Ya por ultimo vamos a hacer lo que comentábamos, no podemos extraer todos los valores de nuestro arreglo agregando tantos returns tengamos, eso no se puede, solo podemos utilizar un return por función, ya que php al encontrar un return deja de ejecutar el código de la función, por eso solo lo podemos escribir una vez. (A menos de que sea un condicional).

Pasamos mediante return el nombre del arreglo y listo, nuestra función esta finalizada. Ahora sigue lo mas fácil, pero lo que puede causar mas confusión, como utilizamos los valores del arreglo fuera de la función.

$nombre = "Carlos";
$auxiliar = saludo($nombre);

En estas lineas de código lo único que hacemos es asignar el nombre o cadena de texto a nuestra variable $nombre. Ahora la parte mas interesante, recibir el arreglo para poder utilizarlo, para eso creamos una variable nueva, en este caso yo la llame $auxiliar y le asignamos el valor que retorne nuestra función y al mismo tiempo estamos ejecutando la función.

Por lo que ahora si quisieras acceder al primer elemento del arreglo lo único que tendrias que hacer es hacerlo con $auxiliar, de esta manera:

$auxiliar[0];

Esta ultima linea de código no la utilice en nuestra aplicación ya que nuestro arreglo no tiene un numero de elementos fijo, es dinámico, cambia con cada nombre diferente, asi que para eso voy a utilizar otro ciclo que recorra el arreglo en base a los elementos que tenga.

for($i2=0;$i2 < strlen($nombre); $i2++){
	echo $auxiliar[$i2];
	echo "<br/>";
}

Y es todo lo que hacemos prácticamente, es asi de sencillo, te dejo el código completo para que lo puedas contemplar de una manera mas limpia.

<?php

function saludo($nombre){
	echo "Bienvenido, ". $nombre. "<br/>";
	for ($i = 0; $i < strlen($nombre); $i++){
		$cadena[$i] = substr($nombre, $i, 1);
	}
	return $cadena;
}

$nombre = "Carlos";
$auxiliar = saludo($nombre);

for($i2=0;$i2 < strlen($nombre); $i2++){
	echo $auxiliar[$i2];
	echo "<br/>";
}

 

Share on Pinterest
Comparte con tus amigos










Enviar

FalconMasters Carlos Arturo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Aprende con nuestros cursos

React y Firebase: El Curso Completo, Práctico y desde Cero

React y Firebase: Curso Completo, Práctico y desde Cero

En este curso aprenderás React desde lo mas básico y paso por paso hasta un nivel avanzado donde podrás crear sitios y aplicaciones web reales.

Inicia el curso

Diseño Web Profesional El Curso Completo, Practico y desde 0

Bienvenido al Curso de Diseño Web, el curso en el que aprenderás paso por paso y desde cero todo lo que necesitas para convertirte en un diseñador web.

Inicia el curso

Bootstrap 5: El Curso Completo, Práctico y Desde Cero

Aprende Bootstrap 4, el framework de diseño web mas importante del mundo.

Inicia el curso
PHP y MYSQL: El Curso Completo, Practico y Desde Cero

PHP y MYSQL: El Curso Completo, Practico y Desde Cero

Aprende a crear cualquier Aplicacion y Sitio Web!. Aprende PHP y MySQL.

Inicia el curso