Función que devuelva un resultado y también: true o false

Iniciado por pisagatos, 10 Enero 2011, 13:34 PM

0 Miembros y 1 Visitante están viendo este tema.

pisagatos

Eyy, muy buenas. ¡Feliz año 2011 a todos  :rolleyes:!

Tengo una duda, no se como hacer una función en PHP que me devuelva un resultado de una operación o de algo que devuelva la función en concreto y aparte me devuelva true o false si todo ha salido correctamente o no la operación.

Es que a veces lo he visto con funciones nativas de PHP que lo hacen, aparte de volver el resultado de la función en cuestión devuelve true o false.

No sé si me explico...  :D

Muchas gracias.

seele

Hola,
pues tan solo tienee que devolver varios resultados en la funcion, podrias hacerlo con un array por ejemplo

Código (php) [Seleccionar]
function myfunction() {
     return array('primer resultado', false);
}


y asi todo lo que quieras

saludos

WHK

puedes hacerlo así pero no es necesario, si no retornas nada lo puedes comparar con false:

Código (php) [Seleccionar]
function test($x){
if($x == 'z')
  return 'w';
}

if($res = test('d'))
echo $res;
else
echo 'error';


así lo hago yo, ahorras código, tiempo y quebraderos de cabeza.
o si no retornas int negativos, un numero por cada error
Código (php) [Seleccionar]
if((int)($res = test('z')) == -2)
echo 'error dos';
else
echo $res;


pisagatos

Muchas gracias por vuestras respuestas.

Cita de: WHK en 10 Enero 2011, 14:10 PM
puedes hacerlo así pero no es necesario, si no retornas nada lo puedes comparar con false:

Código (php) [Seleccionar]
function test($x){
if($x == 'z')
  return 'w';
}

if($res = test('d'))
echo $res;
else
echo 'error';


así lo hago yo, ahorras código, tiempo y quebraderos de cabeza.
o si no retornas int negativos, un numero por cada error
Código (php) [Seleccionar]
if((int)($res = test('z')) == -2)
echo 'error dos';
else
echo $res;


WHK lo he podido solucionar igual que lo q me has puesto pero en vez de devolver error que devuelva false y si lo devuelve bien, devuelve la respuesta.

Nakp

Ojo por ojo, y el mundo acabará ciego.