PHP: serializzazione e deserializzazione degli oggetti

La serializzazione degli oggetti in PHP può sostanzialmente avvenire in due modi.

PHP di Gabriele Romanato

La serializzazione degli oggetti in PHP può sostanzialmente avvenire in due modi.

serialize/unserialize

Le funzioni serialize() e unserialize() rappresentano il metodo più usato per la serializzazione degli oggetti in PHP. Tuttavia l'esempio riportato nella documentazione ufficiale è alquanto fuorviante, nel senso che presuppone che gli oggetti possano anche avere dei metodi che a loro volta verranno serializzati.

In realtà la serializzazione dovrebbe essere intesa come un modo per salvare le proprietà degli oggetti quando queste contengono dei dati rilevanti, come ad esempio i dati presi da un database. Molti framework e CMS utilizzano infatti queste due funzioni per salvare lo stato di un oggetto nel database.

json_encode/json_decode

Le funzioni json_encode() e json_decode() possono essere utilizzate per la serializzazione degli oggetti ma con notevoli limitazioni imposte dalla validazione sul tipo di dati contenute dagli oggetti. Infatti gli oggetti devono contenere solo proprietà e non metodi, in quanto le specifiche JSON non accettano funzioni come tipo di dati valido, ma solo stringhe, numeri, valori booleani, oggetti, array e il tipo null.