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.
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.
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


0