Serialização de arrays PHP: json_encode vs serialize — qual escolher?
Olá a todos! Sou novo em PHP e me deparei com um dilema ao desenvolver um projeto. Preciso salvar arrays em cache (arquivos ou Redis) e depois lê-los de volta. Encontrei duas formas: serialize() e json_encode(). Mas não consigo entender qual delas é melhor usar.
Aqui está um exemplo do meu código:
```php
// Opção 1: serialize
$data = ['user' => 'Иван', 'age' => 30, 'hobbies' => ['чтение', 'программирование']];
$serialized = serialize($data);
file_put_contents('cache.txt', $serialized);
$restored = unserialize(file_get_contents('cache.txt'));
// Opção 2: json_encode
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
file_put_contents('cache.json', $json);
$decoded = json_decode(file_get_contents('cache.json'), true);
```
Ambas as opções parecem funcionar, mas notei algumas estranhezas:
1. serialize() cria uma string mais "suja" com algumas letras e números.
2. json_encode() produz um JSON limpo, que pode ser aberto em qualquer editor.
3. Ao trabalhar com caracteres russos, json_en