Foros del Web » Programando para Internet » PHP »

Duda sobre funciones en PHP

Estas en el tema de Duda sobre funciones en PHP en el foro de PHP en Foros del Web. Tengo unas funciones de este estilo: Código PHP: function  TraeRegistro ( $TablaBD , $NomCampo , $CodDato ) { $Query  =  mysql_query ( "select * from $TablaBD where $NomCampo='$CodDato'" ); $Result  ...
  #1 (permalink)  
Antiguo 05/11/2007, 12:54
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Duda sobre funciones en PHP

Tengo unas funciones de este estilo:
Código PHP:
function TraeRegistro($TablaBD,$NomCampo,$CodDato)
{
$Query mysql_query("select * from $TablaBD where $NomCampo='$CodDato'");
$Result mysql_fetch_array($Query);
$CantResults mysql_num_rows($Query);
mysql_free_result($Query);
return 
$Result;

Si yo aparte de retornar el array $Result quisiera retornar $CantResults. ¿Como podria hacerlo?

Mejor dicho mi pregunta es como retornar dos o mas valores y como los recibo.

Gracias
  #2 (permalink)  
Antiguo 05/11/2007, 13:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Duda sobre funciones en PHP

Regresa un arreglo con tu respuesta:
Código PHP:
function TraeRegistro($TablaBD,$NomCampo,$CodDato)
{
$Query mysql_query("select * from $TablaBD where $NomCampo='$CodDato'");
$Result mysql_fetch_array($Query);
$CantResults mysql_num_rows($Query);
mysql_free_result($Query);
return array( 
$Result$CantResults );

Y asi si lo llamas puedes leer los valores:
Código PHP:
$resultado TraeRegistro(...);
$fila $resultado[0];
$cantidad $resultado[1]; 
Saludos,
  #3 (permalink)  
Antiguo 05/11/2007, 13:19
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: Duda sobre funciones en PHP

En teoria no se puede, pero en uno de los ejemplos del siguiente te dicen como puedes hacerle, que basicamente es regresar un arreglo.

http://http://php.benscom.com/manual...ing-values.php

Saludillos.
  #4 (permalink)  
Antiguo 05/11/2007, 13:20
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Duda sobre funciones en PHP

No se pueden devolver varios valores... podés devolver un array de datos

Código PHP:
return array('result' => $Result'num_rows' => $CantResults); 
o podes agregar un argumento a la función, por referencia, donde indicás alguno de los datos

Código PHP:
 function TraeRegistro($TablaBD,$NomCampo,$CodDato, &$CantResults)
{
$Query mysql_query("select * from $TablaBD where $NomCampo='$CodDato'");
$Result mysql_fetch_array($Query);
$CantResults mysql_num_rows($Query);
mysql_free_result($Query);
return 
$Result;

  #5 (permalink)  
Antiguo 05/11/2007, 14:16
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Re: Duda sobre funciones en PHP

Gracias por sus respuestas ya entenedi como es el cuento. Lo que no entendi muy bien es como se maneja ese ejemplo que me dio Seppo por referencia

Me puede explicar por favor?


Suerte
  #6 (permalink)  
Antiguo 05/11/2007, 14:35
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Duda sobre funciones en PHP

Con referencias podés modificar el valor de uno de los argumentos... te muestro un ejemplo

Código PHP:
<?php
function inc_ref(&$a)
{
    
$a++;
}

function 
inc_no_ref($a)
{
    
$a++;
}

$variable 1;
echo 
$variable;
echo 
PHP_EOL;

inc_no_ref($variable); // esta funcion no tiene referencia ==> no se cambia el valor

echo $variable;
echo 
PHP_EOL;

inc_ref($variable); // esta funcion si esta por referencia asi que incrementa la variable en 1

echo $variable;
?>
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 12:05.