Lavorare con i dati è un'attività importante nello sviluppo di una applicazione, qualche volta però i normali tipi di dato non bastano e si ha la necessità di salvare un array nello stato in cui si trova per poterlo recuperare in seguito. L'idea di base è quella di "trasformare" l'array in una stringa, in modo da poterlo salvare (serializzare) nel DB o in un file e da lì recuperarlo, per "trasformarlo" nuovamente in un array (deserializzare).
PHP ha due funzioni built-in pensate appositamente per questa operazione serialize()
e unserialize()
, che, come descritto nel manuale, servono a linearizzare e delinearizzare una variabile. Queste funzioni sono perfette nel caso in cui il valore da serializzare sia un oggetto o una struttura dati temporanea, quando il campo applicativo rimanga all'interno di PHP o quando si voglia trarre beneficio dai magic_methods chiamati trasparentemente da queste funzioni.
Quando invece il valore da serializzare è una struttura dati permanente, da condividere anche al di fuori della nostra applicazione PHP, magari con Javascript o con altri linguaggi, è conveniente utilizzare la funzione json_encode()
e la funzione opposta json_decode()
, che operano similmente a serialize()
, ma ritornano una linearizzazione JSON, a mio parere più compatta e sicuramente maggiormente trasportabile.