PHP - Valor perdido cada ves que refresco pagina.

 
Vista:

Valor perdido cada ves que refresco pagina.

Publicado por Luis Alonso (1 intervención) el 12/03/2016 18:19:59
Saludos caballeros tengo un problema mas que nada falta de conocimiento a profundidad con respecto a la herencia.
Tengo el siguiente código donde la clase Vehículo es la clase padre.
La clase moto hereda de Vehiculo.

El código lo conseguí del siguiente tutorial.

cada clase esta separada en un archivo, para la clase vehiculo el archivo clase1.php y para la clase moto el archivo clase2.php.

El codigo funciona de la siguiente manera, si corro el archivo clase2.php en pantalla me aparecera lo siguiente.

El motor esta apagado.
El motor ahora esta encendido
El motor esta encendido.

Ahora lo que deseo es que cunado lo corra una segunda ves que la primera linea me diga que el motor esta encendido con base en que la variable $motor; en la clase vehiculo siga conservando el valor modificado de la primera ves que se corrió el código.

Sospecho que no funciona como deceo porque cada ves que corro el código se vuelven a crear las variables en la clase Vehiculo.

he pensado en implementar una cookie para guardar el valor de la primera vuelta y en la segunda vuelta buscarlo y tambien he pensado en implementar una variable de secion pero no se que tan correcto sea esto.

(Clase1.php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
class Vehiculo{
	//Atributos
	public $motor;
	public $marca;
	public $color;
 
 
	//Metodos
	protected function estado(){
		if ($this->motor){
			echo "El motor esta encendido.<BR>";
		}else{
			echo "El motor esta apagado.<BR>";
		}
	}
 
	public function encender(){
		if($this->motor){
			echo "Cuidado el motor ya esta encendido<BR>";
		}else{
			echo "El motor ahora esta encendido<BR>";
			$this->motor=true;
		}
 
	}
 
}
?>


(Clase2.php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
include "clase1.php";
 
class Moto extends Vehiculo{
	public function estadomoto(){
		$this->estado();
		$this->encender();
		$this->estado();
	}
}
 
$Moto = new Moto();
 
$Moto->estadomoto();
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de VRM
Val: 152
Ha disminuido su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Valor perdido cada ves que refresco pagina.

Publicado por VRM (192 intervenciones) el 13/03/2016 11:32:15
Hola:

Puedes guardar el estado del vehículo en una variable de sesión. En la primera linea del programa:
1
session_start()
En la clase vehículo creas un constructor:
1
2
3
4
5
6
7
function __construct() {
	if ( $_SESSION[marcha]){
               $this->motor=true;
        } else {
               $this->motor=false;
        }
}// Fin del constructor
Luego en la clase moto debes hacer otro constructor que llame al constructor de la clase padre
1
2
3
function __construct() {
    parent::__construct();
}// Fin del constructor

Suerte.

Saludos de Víctor.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar