Solucionado: Poner include antes de que el session_start.
Os comento un problema que me tiene algo desesperado. Debe ser algo sencillo, pero como no suelo hacer uso de clases me trae loco.
El caso es que quería hacer uso de un tipo struct como en C. Así que definí la siguiente clase:
Código:
El caso es que si hago por ejemplo test.php:struct { //Productos var $ref; var $talla; var $precio; var $oferta; var $color= array(); //Maximo 10 colores function guarda($valor,$i){ $this->color[$i]=$valor; } function lee($i){ return $this->color[$i]; } }
Código:
De esta forma La opción uno funciona correctamente tanto con inicia=yes o sin incia. Pero la opción 2(clase en otro archivo) al inicializar muestra los valores. Pero al acceder a la variable iniciada anteriormente no muestra los valores. //test.php sesssion_start(); /* Opcion 1: Clase incluída*/ // Aquí iría class struct /*Opción 2: clase en otro archivo*/ // include_once('struct_class.php'); //Archivo con la clase struct. if ($_GET[inicia]=='yes') //Inicializo valores { unset($_SESSION['cart']); $_SESSION['cart']=array(); $_SESSION['cart']['28314']= new struct; $_SESSION['cart']['28314']->ref=20; $_SESSION['cart']['28314']->talla='Unica'; $_SESSION['cart']['28314']->guarda('uno',0);//guardo color[0]=uno } echo 'REF: '.$_SESSION['cart']['28314']->ref; echo 'Color: '.$_SESSION['cart']['28314']->lee(1); // Accedo mediante método echo 'Color: '.$_SESSION['cart']['28314']->color[1]; //Accedo de forma directa
Output:
Opción 1: inicia =yes y sin inicia=yes
REF: 20 Precio: 2.2 Color: uno Color: uno
Opción 2: incia= yes
REF: 20 Precio: 2.2 Color: uno Color: uno
Opción 2: sin inicia
REF: Precio: Color: Color:
Me trae de cabeza, podéis echarme una mano? Muchas gracias