Foros del Web » Programando para Internet » PHP »

Evaluar el return de una funcion

Estas en el tema de Evaluar el return de una funcion en el foro de PHP en Foros del Web. Tengo una gran duda, pasa que tengo una funcion y se ejecuta pero cuando todo sale bien me retorna un valor true, mi pregunta es ...
  #1 (permalink)  
Antiguo 21/03/2010, 22:34
 
Fecha de Ingreso: marzo-2010
Ubicación: San Luis Potosi
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 0
Sonrisa Evaluar el return de una funcion

Tengo una gran duda, pasa que tengo una funcion y se ejecuta pero cuando todo sale bien me retorna un valor true, mi pregunta es como puedo evaluar si es falso o verdadero el ultimo valor de retorno para en base a ello hacer otras acciones les dejo mi codigo.

function comprobar_nombre ($nombre_usuario){
//compruebo que el tamaño del string sea válido.
if (strlen($nombre_usuario)<5)
{ echo "el nombre debe de contener mas de 5 letras <br>";

if (strlen($nombre_usuario)>30)
{ echo "el nombre debe contener menos de 30 letras<br>";
}
}



$permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ0123456789-_";
for ($i=0; $i<strlen($nombre_usuario); $i++){
if (strpos($permitidos, substr($nombre_usuario,$i,1))===false){
echo $nombre_usuario . " contiene caracteres invalidos <br>";
return false;
}
}
echo $nombre_usuario . " esta escrito correctamente <br>";
return true;
}

escuche que se puede guardar en una variable mediante esto:
$cn=comprobar_nombre();

y verifique si funcionaba mediante esto:
echo $cn;

pero me marca error aunque si me manda un 1 a pantalla.
Ayuda por favor!
  #2 (permalink)  
Antiguo 21/03/2010, 23:07
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 8 meses
Puntos: 10
Respuesta: Evaluar el return de una funcion

Te devuelve 1 porque devolvió true.

Que error te arroja?
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #3 (permalink)  
Antiguo 21/03/2010, 23:11
 
Fecha de Ingreso: marzo-2010
Ubicación: San Luis Potosi
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Evaluar el return de una funcion

Cita:
Iniciado por TolerantX Ver Mensaje
Te devuelve 1 porque devolvió true.

Que error te arroja?
claro claro el 1 es por el true. aqui esta el error:
Código PHP:
Ver original
  1. Warning: Missing argument 1 for comprobar_nombre(), called in /var/www/agregar_usuarios.php on line 121 and defined in /var/www/agregar_usuarios.php on line 4
  2. el nombre debe de contener mas de 5 letras
  3. esta escrito correctamente
  4. 1
  #4 (permalink)  
Antiguo 21/03/2010, 23:15
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 8 meses
Puntos: 10
Respuesta: Evaluar el return de una funcion

El error es propio de como usas tu función ya que la función espera el parametro $nombre_usuario y no lo usas en $cn=comprobar_nombre();
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #5 (permalink)  
Antiguo 21/03/2010, 23:27
 
Fecha de Ingreso: marzo-2010
Ubicación: San Luis Potosi
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Evaluar el return de una funcion

Cita:
Iniciado por TolerantX Ver Mensaje
El error es propio de como usas tu función ya que la función espera el parametro $nombre_usuario y no lo usas en $cn=comprobar_nombre();
es cierto, le he puesot el argumento a la funcion:
$cn=comprobar_nombre($nombre_usuario);
echo $cn;

y me quita el error pero ahora me marca todos los echos de la funcion en pantalla asi:
el nombre debe de contener mas de 5 letras y no s epor que, pues cuando comento las dos lineas($cn=comprobar_nombre($nombre_usuario);
echo $cn;) se quita ese mensaje.
  #6 (permalink)  
Antiguo 21/03/2010, 23:41
 
Fecha de Ingreso: marzo-2010
Ubicación: San Luis Potosi
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Evaluar el return de una funcion

Cita:
Iniciado por TolerantX Ver Mensaje
El error es propio de como usas tu función ya que la función espera el parametro $nombre_usuario y no lo usas en $cn=comprobar_nombre();
vale vale ya le he quitado el error con eso qu eme dijiste y con:
$cn=comprobar_nombre($nombre);
echo $cn;

me imprime el resultado de la funcion y el valor de true(1), lo que quiero es poder tomar ese true(1) y evaluarlo con un if o alguna funcion de modo que si el resultado de esa funcion es true o false me haga x o y sentencia. ¿Se puede? ¿como?
Agradesco todos sus aportes.
  #7 (permalink)  
Antiguo 22/03/2010, 05:24
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 11 meses
Puntos: 89
Respuesta: Evaluar el return de una funcion

Las funciones que devuelven algún valor, se evaluan tal cual según el valor que devuelvan. En otras palabras :

Código PHP:

// Función que devuelve true
funciton returnBoolean() {
   return 
true;
}

// La evaluamos
if(returnBoolean()) { 
    
// hacemos algo....

Es como si tuvieras una variable $boolean = true;, y luego preguntas si es true o false. No tiene mucha ciencia, es así de simple.

Para una función que devuelve un string :

Código PHP:
// Funcion que devuelve "Hola mundo!"
function helloWorld() {
   return 
"Hola mundo!";
}

// Evaluamos
if(helloWorld() == "Hola mundo!") {
   
// hacemos algo...

Espero te haya quedado claro. Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #8 (permalink)  
Antiguo 22/03/2010, 09:32
 
Fecha de Ingreso: marzo-2010
Ubicación: San Luis Potosi
Mensajes: 41
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Evaluar el return de una funcion

Cita:
Iniciado por spider_boy Ver Mensaje
Las funciones que devuelven algún valor, se evaluan tal cual según el valor que devuelvan. En otras palabras :

Código PHP:

// Función que devuelve true
funciton returnBoolean() {
   return 
true;
}

// La evaluamos
if(returnBoolean()) { 
    
// hacemos algo....

Es como si tuvieras una variable $boolean = true;, y luego preguntas si es true o false. No tiene mucha ciencia, es así de simple.

Para una función que devuelve un string :

Código PHP:
// Funcion que devuelve "Hola mundo!"
function helloWorld() {
   return 
"Hola mundo!";
}

// Evaluamos
if(helloWorld() == "Hola mundo!") {
   
// hacemos algo...

Espero te haya quedado claro. Nos vemos.
si lo he entendido, creo que ya esta eso ahora han surgido otras dudas, pero creo que necsito otro post. gracia spor todo.
  #9 (permalink)  
Antiguo 22/03/2010, 09:43
Avatar de jrw
jrw
 
Fecha de Ingreso: enero-2003
Ubicación: Barcelona
Mensajes: 46
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta: Evaluar el return de una funcion

El problema de tu codigo es que dices que es erroneo pero te falta añadir un: return false;

Código PHP:
if (strlen($nombre_usuario)<5
{ echo 
"el nombre debe de contener mas de 5 letras <br>";
return 
false;
}

if (
strlen($nombre_usuario)>30)
{ echo 
"el nombre debe contener menos de 30 letras<br>";
return 
false;

__________________
Jordi Riera Wirth

Etiquetas: evaluar, funcion, return
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 22:21.