Cita:
Iniciado por pateketrueke
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
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
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 originalpublic function subirPasajeros($pasajeros)
{
if()
return true; //Si este se subio
else
return false; //Si no esta ocupado
}
Y fuera de cla clase, instancias el objeto
$obj = new Taxi();
if($obj->subirTaxi($pasajero))
print "EL PASAJERO SE SUBIOo";
else
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.