comportamenti alquanto strani secondo me ... intanto non e' possibile serializzare la statica ma e' necessario, indispensabile assegnare questa ad una variabile, poi se la variabile e' statica non c'e' modo, o perlomeno non ci sono riuscito, di farla serializzare con il suo contenuto ... e infatti:
codice:
class StaticClass {
static private $value = '';
static public function setValue( $value ) {
StaticClass::$value = $value;
}
static public function getValue() {
return StaticClass::$value;
}
function __destruct() {
echo serialize( $this );
}
}
$a = &new StaticClass; // se non la assegno il __destruct non va
$a->setValue( "prova" );
// elimino $a e metto una linea per dividere le classi
unset( $a );
echo "<hr />";
class StaticClass2 {
private $value = '';
public function setValue( $value ) {
$this->value = $value;
}
public function getValue() {
return $this->value;
}
function __destruct() {
echo serialize( $this );
}
}
$a = &new StaticClass2;
$a->setValue( "prova" );
risultato:
codice:
O:11:"StaticClass":0:{}
-----------------------
O:12:"StaticClass2":1:{s:19:"StaticClass2value";s:5:"prova";}