serialize() ou json_encode ?
Bem, basicamente o é essa pergunta mesmo.
Eu estava debatendo com meu colega de programação qual seria o melhor uso:
json_encode ou serialize?
Tenho mais ou menos uma opinião formada, mas sempre podemos aprender mais.
Alguns pontos:
- Vi algumas discussões no stackoverflow (não sou muito bom em inglês) e acho que estavam dizendo que uma das vantagens é que o tamanho que pode ser processado por unserialize é superior ao do json_decode.
- O problema do unserialize é que se a string vier incorreta, o PHP gera um NOTICE, ao passo que o json encode retorna humildemente um valor NULL.
- Outro é que o json_decode pode retornar tanto um array como um objeto para a string passada por parâmetro, já o unserialize só obtém o valor "original" da variável que anteriormente fora "serializada".
// Aqui vão alguns testes //$data = new stdClass;$data->forum = 'Imasters';$data_json = json_encode($data);$data_serial = serialize($data);// Segundo parâmetro por padrão é "false" e faz com que seja retornado um "object" //var_dump(json_decode($data_json));//object(stdClass)#1 (1) { ["forum"]=> string(8) "Imasters" } // Faz retornar um array //var_dump(json_decode($data_json,true));//array(1) { ["forum"]=> string(8) "Imasters" } // Retorna o "$data" original.var_dump(unserialize($data_serial));//object(stdClass)#2 (1) { ["forum"]=> string(8) "Imasters" }
Gostaria de ouvir opiniões sobe esse assunto.
Qual seria o mais recomendável?
Discussão (4)
Carregando comentários...