Foros del Web » Programando para Internet » PHP »

se puede llamar una funcion dentro de un constructor?

Estas en el tema de se puede llamar una funcion dentro de un constructor? en el foro de PHP en Foros del Web. Hola amigos!!!!!! Tengo un problemilla y dado mi nivel de principiante en PHP, no se como resolverlo. Me sale el siguiente error: Fatal error: Call ...
  #1 (permalink)  
Antiguo 22/10/2007, 09:34
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
De acuerdo se puede llamar una funcion dentro de un constructor?

Hola amigos!!!!!! Tengo un problemilla y dado mi nivel de principiante en PHP, no se como resolverlo.
Me sale el siguiente error:
Fatal error: Call to undefined function get_galeria() in C:\...\class\galeria.class.php on line 31

Y mi código es el siguiente:
class Galeria{
var $conexio;
var $ruta;
var $titol;
var $id;

function Galeria($id,$db){
$this->conexio=$db;
$this->id=$id;
echo "id ".$id."\n";
echo "Conexio ".$conexio."\n";
$galeria=getGaleria($this->id);
$this->ruta=$galeria[1];
$this->titol=$galeria[0];
}

function getGaleria($id){
$query="SELECT * FROM galeria where id =".$this->id;
//echo $query;
$recordSet = &$this->conexio->Execute($query);
//echo "<br>".$query;
//echo "<br>".count($recordSet);
//echo "<br>nombre_campo: ".$recordSet->fields[0]." - Valor: ".$recordSet->fields[1];
while (!$recordSet->EOF){
//echo "<br>nombre_campo: ".$recordSet->fields[0]." - Valor: ".$recordSet->fields[1];
//$retorno[$recordSet->fields[0]]=$recordSet->fields[1];
$retorno[0]=$recordSet->fields[1];//titulo
$retorno[1]=$recordSet->fields[2];//ruta
$recordSet->MoveNext();
}
return $retorno;
}


Se puede llamar una funcion dentro de un constructor? A ver si alguein sabe encontrarme el fallo o los fallos..

Mil GRacias por adelantado
  #2 (permalink)  
Antiguo 22/10/2007, 09:37
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: se puede llamar una funcion dentro de un constructor?

Si pongo en $galeria=getGaleria($this->id);
$galeria->getGaleria($this->id);
me sale el siguente error:
Call to a member function get_galeria() on a non-object in C:\...\class\galeria.class.php on line 31

Que no la llamo bien?
  #3 (permalink)  
Antiguo 22/10/2007, 10:17
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: se puede llamar una funcion dentro de un constructor?

Fijate que no es una función, sino un método, así que le debés indicar el objeto ($this->...), igualmente el error está en la línea 31, eun una función get_galeria que no la posteaste... probá con esto, y sino copiá el código completo
Código PHP:
<?php
class Galeria{
    var 
$conexio;
    var 
$ruta;
    var 
$titol;
    var 
$id;

    function 
Galeria($id,$db){
        
$this->conexio=$db;
        
$this->id=$id;
        echo 
"id ".$id."\n";
        echo 
"Conexio ".$conexio."\n";
        
$galeria=$this->getGaleria($this->id);
        
$this->ruta=$galeria[1];
        
$this->titol=$galeria[0];
    }
    
    function 
getGaleria($id){
        
$query="SELECT * FROM galeria where id =".$this->id;
        
$recordSet = &$this->conexio->Execute($query);
        while (!
$recordSet->EOF){
            
$retorno[0]=$recordSet->fields[1];//titulo
            
$retorno[1]=$recordSet->fields[2];//ruta
            
$recordSet->MoveNext();
        }
        return 
$retorno;
    }
}
?>
  #4 (permalink)  
Antiguo 22/10/2007, 10:18
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: se puede llamar una funcion dentro de un constructor?

Tienes que llamarla asi:

$galeria=$this->getGaleria($this->id);

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 22/10/2007, 10:31
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: se puede llamar una funcion dentro de un constructor?

perdon get_galeria es getGaleria.
Fuera de la class, he definido una variable de la class galeria de la siguiente manera:
$migaleria = new Galeria($_GET["id"],$db);

cómo puedo llamar a una función de esa class desde fuera?
$migaleria->ruta=get_galeria($_GET["id"],$db);

me salta el siguiente error:
Fatal error: Call to undefined function get_galeria() in C:\...\galeria.php on line 7

Última edición por Laufwerk; 22/10/2007 a las 10:37
  #6 (permalink)  
Antiguo 22/10/2007, 10:35
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: se puede llamar una funcion dentro de un constructor?

Ok, si estas en la misma clase como lo anterior y querias utilizar una funcion en ella usas el $this para acceder a la clase.

Por otro lado si vas a utilizarla desde otro archivo lo que haces es llamar las funciones desde la instanciacion que has definido, o sea:
Código PHP:
//Esta es la instanciacion
$migaleria = new Galeria($_GET['id'],$db);

//asi accedes a tu funcion
$migaleria->getGaleria($id); 
Suerte
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 22/10/2007, 10:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: se puede llamar una funcion dentro de un constructor?

sois los putos amos!!!!!
gracias!!!!!
  #8 (permalink)  
Antiguo 22/10/2007, 10:51
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: se puede llamar una funcion dentro de un constructor?

ahaha xD...

no problem! ;)
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 07:56.