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.

Continua a leggere PHP, serialize() vs. JSON

Categoria: PHP e Open Source