Estoy intentando hacer un ejercicio de clases, funciones y objetos, pero no termino de entender por que en el primer caso no me imprimen los datos que llamo si no pongo los "echo" dentro de la función:
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){
$this->estado = "libre <br />";
$this->subir_pasajeros = $pasajeros;
}
elseif ($pasajeros>0){
$this->estado = "ocupado <br />";
$this->subir_pasajeros = $pasajeros;
}
}
function subir_pasajeros($pasajeros){
if ($pasajeros<=0){
$this->estado = "libre <br />";
$this->subir_pasajeros = $pasajeros;
}
elseif ($pasajeros>0){
$this->estado = "ocupado <br />";
$this->subir_pasajeros = $pasajeros;
}
}
}
$taxi = new Taxi();
echo $taxi->estado(); // Mostrará "libre"
$taxi->subir_pasajeros(3); // Suben 3 pasajeros al taxi
echo $taxi->estado(); // Mostrará "ocupado"*/
?>
La manera de imprimirlo tiene que ser así, pero si no pongo los "echo" no imprime nada.
Si los pongo en todos si imprime pero a la vez no le cambia el valor a estado en la segunda función cambiándolo a 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){
echo $this->estado = "libre <br />";
$this->subir_pasajeros = $pasajeros;
}
elseif ($pasajeros>0){
echo $this->estado = "ocupado <br />";
$this->subir_pasajeros = $pasajeros;
}
}
function subir_pasajeros($pasajeros){
if ($pasajeros<=0){
echo $this->estado = "libre <br />";
$this->estado = "libre <br />";
$this->subir_pasajeros = $pasajeros;
}
elseif ($pasajeros>0){
echo $this->estado = "ocupado <br />";
$this->estado = "ocupado <br />";
$this->subir_pasajeros = $pasajeros;
}
}
}
$taxi = new Taxi();
echo $taxi->estado(); // Mostrará "libre"
$taxi->subir_pasajeros(3); // Suben 3 pasajeros al taxi
echo $taxi->estado(); // Mostrará "ocupado"*/
?>
¿Estoy haciendo algo mal o me falta algo?