Foros del Web » Programando para Internet » PHP »

No ejecuta una funcion

Estas en el tema de No ejecuta una funcion en el foro de PHP en Foros del Web. Hola que peden decir que estoy haciendo mal: mi codigo: Código PHP: class  contenido {          var  $datos  = '' ;     var  $retorno  = '' ...
  #1 (permalink)  
Antiguo 29/08/2010, 13:11
Avatar de ONahuelO  
Fecha de Ingreso: junio-2009
Ubicación: Gualeguaychú, Argentina
Mensajes: 144
Antigüedad: 14 años, 10 meses
Puntos: 4
No ejecuta una funcion

Hola que peden decir que estoy haciendo mal:

mi codigo:
Código PHP:
class contenido{
    
    var 
$datos ='';
    var 
$retorno ='';
    
    function 
contenido($file){
        
$this->datos file_get_contents($file);
    }
    
    function 
cual($cual){
        
$string[01] = explode("$cual:",$this->datos);
        
$string[02] = explode(".",$string[01][1]);
        return 
$this->retorno $string[02][0];
    }
    
    function 
mostrar(){
        echo 
$this->retorno;
    }
    
}


$archivo = new contenido('temp.txt');

$archivo->cual('casa')->mostrar(); 
archivo:
Código:
casa:roja.verde:azul+amarillo.
retorno:
Código:
Fatal error: Call to a member function mostrar() on a non-object in D:\xampp\htdocs\system.php on line 107 
deseo que me retorne el color de la casa, en este caso la palabra roja.

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 29/08/2010, 13:38
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: No ejecuta una funcion

me parece que el error esta en que la funcion mostrar no la estas accediendo correctamente.
deberí ser asi:
Código PHP:
Ver original
  1. $archivo = new contenido('temp.txt');
  2.  
  3. $archivo->cual('casa');
  4. $archivo->mostrar() ;

Porque como vos lo llamas das a "enteder" que mostrar es un método de "cual".

salu2
  #3 (permalink)  
Antiguo 30/08/2010, 11:25
Avatar de bng5  
Fecha de Ingreso: junio-2009
Ubicación: 127.0.0.1
Mensajes: 269
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: No ejecuta una funcion

Tendrías que cambiar el retorno del método cual y ya está.

Código PHP:

    
function cual($cual){
        
$string[01] = explode("$cual:",$this->datos);
        
$string[02] = explode(".",$string[01][1]);
        
$this->retorno $string[02][0];
        return 
$this;
    } 

Edit: O llamar a los métodos de a 1 como dice destor77.

Etiquetas: funcion
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 18:28.