Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/11/2010, 10:08
Avatar de kahlito
kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 22 años
Puntos: 65
Respuesta: Error imprimiendo datos desde una clase con objetos

Cita:
Iniciado por pateketrueke Ver Mensaje
el punto es que php no imprime por arte de magia, en algún punto debes programar que imprima...

para dicho caso lo mejor es que los métodos devuelvan algún resultado con return para así imprimirlo por fuera del objeto y no dentro de el...
Cita:
Iniciado por Hidek1 Ver Mensaje
bueno es simple.. porque los IF dentro del método estado().. se refieren al parámetro del método y tu no le pasas ningún parámetro -.-!

verifica lo que digo con esto
$taxi->estado(0); // Mostrará "libre"

saludos.
hola de nuevo, he probado hacinedo que me devuelva el resultado con "return" para no poner los echos dentro y si se imprimen, incluso si pongo dentro de estado fuera un valor mayor a 0 ( echo $taxi->estado(5); por ejemplo) si me da ocupado:

Código PHP:
<?php

class Taxi {
    
    var 
$estado;
    var 
$pasajeros;
    var 
$subir_pasajeros;    
    
    function 
estado($pasajeros=0) { // Esto se ejecutará al instanciar la clase
        
if ($pasajeros<=0){
        return 
$this->estado "libre <br />";    
        
$this->subir_pasajeros $pasajeros;
    }
    elseif (
$pasajeros>0){
        return 
$this->estado "ocupado <br />";
        
$this->subir_pasajeros $pasajeros;
        }
    }
    

}
$taxi = new Taxi();

echo 
$taxi->estado(); // Mostrará "libre"
//$taxi->estado(0);

?>

Sin embargo en la segunda parte intento hacer aparte lo siguiente para probar y me da error ya que el método "estado" no está definido en este caso

Código PHP:
<?php

class Taxi {
    
    var 
$estado;
    var 
$pasajeros;
    var 
$subir_pasajeros;    
    
    function 
subir_pasajeros() {
        if (
$pasajeros<=0){
        return 
$this->estado "libre <br />";    
        
$this->subir_pasajeros $pasajeros;
    }
    elseif (
$pasajeros>0){
        return 
$this->estado "ocupado <br />";
        
$this->subir_pasajeros $pasajeros;
        }
        
        }

}
$taxi = new Taxi();

$taxi->subir_pasajeros(3); // Suben 3 pasajeros al taxi
echo $taxi->estado(); // Mostrará "ocupado"*/

?>
No entiendo como puedo llamarlo de esa forma sin que me de error.


Cita:
Iniciado por HiToGoRoShi Ver Mensaje
crea metodos get and set de tus variables, y luego funciones que hagan return, jamas imprimir ahi mismo ... y sobre todo hacer logica fuera de una funcion

ejem ..
Código PHP:
Ver original
  1. public function subirPasajeros($pasajeros)
  2. {
  3. if()
  4. return true; //Si este se subio
  5. else
  6. return false; //Si no esta ocupado
  7. }
  8.  
  9. Y fuera de cla clase, instancias el objeto
  10.  
  11. $obj = new Taxi();
  12.  
  13. if($obj->subirTaxi($pasajero))
  14. print "EL PASAJERO SE SUBIOo";
  15. else
  16. print "NO HAY MAS ESPACIO";

Es una idea tio, espero que lo entiendas

El problema es que tengo que hacer el ejercicio a partir de esta llamada:

Código:
$taxi = new Taxi();

echo $taxi->estado(); // Mostrará "libre"

$taxi->subir_pasajeros(3); // Suben 3 pasajeros al taxi

echo $taxi->estado(); // Mostrará "ocupado"*/
Saludos.