Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problemas al retornar un string en una función.

Estas en el tema de Problemas al retornar un string en una función. en el foro de PHP en Foros del Web. Hola amigos estoy retornando un string en una función php, pero solo me esta retornando el primer caracter del string cuando uso "return $s", y ...
  #1 (permalink)  
Antiguo 21/01/2014, 20:26
 
Fecha de Ingreso: junio-2013
Mensajes: 17
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Problemas al retornar un string en una función.

Hola amigos estoy retornando un string en una función php, pero solo me esta retornando el primer caracter del string cuando uso "return $s", y si "retorno" el string con un "echo $s" al final de la función me muestra todo pero no me muestra en la vista los strings en los divs (donde llamo la funcion) si no que los coloca al principio del documento.
  #2 (permalink)  
Antiguo 21/01/2014, 21:10
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: Problemas al retornar un string en una función.

Y nosotros somos adivinos y sabemos como esta tu codigo
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #3 (permalink)  
Antiguo 21/01/2014, 21:16
 
Fecha de Ingreso: junio-2013
Mensajes: 17
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problemas al retornar un string en una función.

Cita:
Iniciado por xSkArx Ver Mensaje
Y nosotros somos adivinos y sabemos como esta tu codigo

Código PHP:
Ver original
  1. function funcionp($var)
  2. {  
  3.     $replace = array('a','b','c');
  4.     $search  = array('1s','2s','3s');
  5.     $b = substr(chunk_split($var, 2, '-'), 0, -1);
  6.     $pieza = explode('-',$b);
  7.  
  8.     for($i = 0;$piece[$i] != '';$i++)
  9.     {
  10.     $pos = array_search($piece[$i],$search);
  11.     if ($pos !== FALSE)
  12.     $s = str_replace($search[$pos], $replace[$pos],$piece[$i]);
  13.     echo $s;
  14.     }
  15. }
si uso return en vez de echo me retorna dentro de los divs en donde llamo funcionp($variable); pero solo el primer carácter de la cadena, y si uso el echo me retorna fuera de los divs al principio del código pero toda la cadena.

Última edición por DuranEnmanuel; 21/01/2014 a las 21:21
  #4 (permalink)  
Antiguo 21/01/2014, 21:37
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: Problemas al retornar un string en una función.

Si usas return despues tienes que hacer esto
Código PHP:
Ver original
  1. echo funcion($algo)
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #5 (permalink)  
Antiguo 21/01/2014, 21:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas al retornar un string en una función.

Si colocas el return dentro de un loop es obvio que se salga de inmediato, pues como todos sabemos return finaliza la ejecución de la función.

Si necesitas devolver algo debe ser al finalizar al loop, y de algún modo debes ir almacenando o concatenando los valores del loop para devolverlos al final.

¿No te parece lógico?

PDTA: al parecer no tienes ni la menor idea de cómo estructurar una función, o peor aún, como es que "funcionan".

Siendo así te sugiero leer el siguiente manual para que aprendas todo lo necesario acerca de las funciones: http://www.php.net/manual/es/functions.user-defined.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 21/01/2014, 21:59
 
Fecha de Ingreso: junio-2013
Mensajes: 17
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problemas al retornar un string en una función.

Cita:
Iniciado por pateketrueke Ver Mensaje
Si colocas el return dentro de un loop es obvio que se salga de inmediato, pues como todos sabemos return finaliza la ejecución de la función.

Si necesitas devolver algo debe ser al finalizar al loop, y de algún modo debes ir almacenando o concatenando los valores del loop para devolverlos al final.

¿No te parece lógico?

PDTA: al parecer no tienes ni la menor idea de cómo estructurar una función, o peor aún, como es que "funcionan".

Siendo así te sugiero leer el siguiente manual para que aprendas todo lo necesario acerca de las funciones: [url]http://www.php.net/manual/es/functions.user-defined.php[/url]
Tomando en cuenta tu comentario cree una variable que concatenara cola por cola cada valor de la variable $s del código por vuelta y me funciono al retornarla fuera de el ciclo.

muchas gracias, marcado como resuelto.

Etiquetas: retornar, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:20.