Ciao,
stò studiando questa guida: http://php.html.it/guide/lezione/424...seconda-parte/
mi trovo in difficoltà con il seguente listato:
Quando lo vado a fari girare non mi si vede nulla...e non capisco neanche bene cosa dovrebbe fare...codice:<?php class MyClass{ // PROPRIETÀ: public $a; public $b; /* METODO MAGICO __set_state(): viene azionato quando si esporta un oggetto * tramita la funzione var_export ed accetta un array che avrà le coppie * key/value impostate ai nomi/valori delle proprietà esportate */ public static function __set_state($arr){ $obj = new MyClass(); // Crea un nuovo oggetto istanza di MyClass $obj->a = $arr['a']; $obj->b = $arr['b']; return $obj; // Ritorna il riferimento al nuovo oggetto } } $obj1 = new MyClass(); // Crea un nuovo oggetto istanza di MyClass $obj1->a = 10; // Modifica la proprietà a $obj1->b = 20; // Modifica la proprietà b eval('$obj2 = ' . var_export($obj1, true) . ';'); ?>
Praticamente...da quello che ho capito il metodo magico __set_state() viene richiamato automaticamente quando si esporta un oggetto in un altro oggetto con la funzione var_export()
Praticamente che fà? Prende in input un array (che non ho ben capito cosa contiene)...crea un nuovo oggetti e che significano esattamente queste due assegnazioni?
Cosa significa inoltre l'ultima operazione fatta fuori dalla classe? eval('$obj2 = ' . var_export($obj1, true) . ';');codice:$obj->a = $arr['a']; $obj->b = $arr['b'];
Questo esempio non mi pare chiarissimo...
Grazie
Andrea