PHP - Problema con un parametro de un constructor de una clase

 
Vista:

Problema con un parametro de un constructor de una clase

Publicado por Sam (185 intervenciones) el 14/05/2016 19:03:30
Hola amigas/os, verán tengo un problemilla a ver si me pueden ayudar.

Tengo una clase hecha que me permite contarme los dias desde que un usuario se da de alta en una web y los dias que le quedan.
Y que pasados 30 dias me muestre un mensaje diciendo que se le ha dado de baja por inactividad en su perfil.

La cuestion es que la clase consta de un costructor y dos metodos.

El primer metodo me funciona bien y el segundo no.

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
class clase_plazo_borrado_perfil
 
	{
 
		function __construct($fecha_registro, $dias_transcurridos)
 
			{
				$this->fecha_registro = $fecha_registro;
				$this->dias_transcurridos = $dias_transcurridos;
			}
 
 
 
		function dias_transcurridos()
 
			{
				$fecha_registro = date_create($this->fecha_registro);//fecha registro el cliente
				$fecha_actual   = date_create(date("Y-m-d"));//fecha de actual
				$diferencia     = date_diff($fecha_registro, $fecha_actual);//diferencia entre fecha registro y la actual
 
				return $diferencia->format('%a');
			}
 
 
 
		function crono_borrado_perfil()
 
			{
				if($this->dias_transcurridos < 30)
 
					{
						echo "Ponga algo en su perfil antes de " . (30-$this->dias_transcurridos) . " días<br/>" .
						"o su perfil será borrado por inactividad.";
					}
 
					else
 
					{
						echo "Su perfil ha sido dado de baja por no tener nada en 30 días. <br/>
						Puede volver ha darse de alta.";
					}
			}
 
	} //Fin class crono_borrado_perfil
 
 
	$obj_clase_plazo_borrado_perfil = new clase_plazo_borrado_perfil('2016-05-01',$dias_transcurridos);
 
 
	//Dias transcurridos..........................................................................
	echo "Días transcurridos: " . $obj_clase_plazo_borrado_perfil->dias_transcurridos() ."<br/>";
 
	$dias_transcurridos = $obj_clase_plazo_borrado_perfil->dias_transcurridos();
 
 
	//Días restantes para el borrado del perfil...................................................
	echo $obj_clase_plazo_borrado_perfil->crono_borrado_perfil();



El mensaje de error que me da es este:

"Notice: Undefined variable: dias_transcurridos"

El resultado que me da en el navegador es este:

Días transcurridos: 13
Ponga alguna encuesta en su perfil antes de 30 días
o su perfil será borrado de Network por inactividad.

Nota: (Como se puede apreciar donde pone 30 , debería poner 17, osea 30-13= 17)



Por otro lado decir que si en esta linea:

$obj_clase_plazo_borrado_perfil = new clase_plazo_borrado_perfil('2016-05-01',$dias_transcurridos);

Sustituyo la variable que me da problemas $dias_transcurridos por un numero por ejemplo 17, entonces si funciona correctamente.


Gracia de antemano.
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
sin imagen de perfil

Problema con un parametro de un constructor de una clase

Publicado por DAVID (129 intervenciones) el 16/05/2016 10:21:47
Hola,
Es que no has declarado las propiedades de la clase, en este caso, dias_transcurridos y fecha_registro, no? Si es así, no lo veo

Un saludo,
David
estudio de diseño web
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

Problema con un parametro de un constructor de una clase

Publicado por Sam (185 intervenciones) el 16/05/2016 11:31:30
Hola David, ante todo gracias por responder.

Mira, si te refieres a poner esto antes del constructor, dentro de la clase:

1
2
public $fecha_registro;
public $dias_transcurridos;

Lo acabo de poner, y el problema sigue estando.

Y no se como solucionarlo la verdad.

help!!! :-(
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