PHP: serializzare gli oggetti: metodi a confronto

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.