PHP - Problema con sesiones y objeto

 
Vista:

Problema con sesiones y objeto

Publicado por Francisco (2 intervenciones) el 12/01/2012 16:37:05
Hola, mi problema es el sisguiente:

Estoy haciendo un carrito de la copmpra y al actualizar el objeto que guardo en sesión, este no actúa:


Los dos archivos con los que estoy tratando son ""carrito.php" y"index.php"

"carrito.php"
<?php
class Carrito {

var $num_productos=2;
var $array_id_prod;
var $array_nombre_prod;
var $array_precio_prod;

//Constructor de la clase
function __construct() {
$num_productos = 9;
}

//Constructor de la clase
function Carrito() {
$num_productos = 9;
//}

function a(){
$num_productos += 17;
return $num_productos;
}
/*
?>


index.php: (pongo lo importante)


include ("clases/carrito.php");
session_start();

if (!isset($_SESSION["carroCompra"])){
$_SESSION["carroCompra"] = new Carrito();
echo "Instanciado por primera vez";
}

echo $_SESSION["carroCompra"]->num_productos;
echo "<br/>"
echo $_SESSION["carroCompra"]->a();


La primera vez que entro, pasa por "instanciado por primera vez" y las siguientes no (eso es correcto).

ahora el problema/problemas:
-la primera vez que entro saca por pantalla:
Instanciado por primera vez
2
17
cuando creo que debería sacar 9 y 26.
creo que está omitiendo el constructor.
y el método a(), no añade 17 a lo que ya había (2 o 9) sino que se queda en 17 (como si el número que había fuese 0 o nulo)
-las siguientes veces siempres saca lo mismo:
2
17
los problemas son los mismos que en el caso anterior.

Da la sensación de que se volviese a crear nuevo cada vez (aparte de uqe no vaya el constructor)

Me estoy volviendo un poco loco con esto.
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

Problema con sesiones y objeto

Publicado por Francisco (2 intervenciones) el 12/01/2012 17:25:25
Ya está spolucionado, por si a alguien le interesa, el problema estaba en la clase.
Debe ir así:

public $num_productos=2;
public $array_id_prod;
public $array_nombre_prod;
public $array_precio_prod;

//Constructor de la clase
function __construct() {
$this->num_productos = 9;
}


function a(){
$this->num_productos += 17;
return $this->num_productos;
}
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