Avatar ·

Serialisierung von PHP-Arrays: json_encode vs serialize – was wählen?

Hallo zusammen! Ich bin neu in PHP und stehe bei der Entwicklung eines Projekts vor einem Dilemma. Ich muss Arrays in einem Cache (Dateien oder Redis) speichern und später wieder auslesen. Ich habe zwei Methoden gefunden: serialize() und json_encode(). Aber ich kann nicht verstehen, welche besser zu verwenden ist. Hier ist ein Beispiel meines Codes: ```php // Variante 1: serialize $data = ['user' => 'Иван', 'age' => 30, 'hobbies' => ['чтение', 'программирование']]; $serialized = serialize($data); file_put_contents('cache.txt', $serialized); $restored = unserialize(file_get_contents('cache.txt')); // Variante 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); ``` Beide Varianten scheinen zu funktionieren, aber ich habe Merkwürdigkeiten bemerkt: 1. serialize() erzeugt einen "schmutzigeren" String mit irgendwelchen Buchstaben und Zahlen. 2. json_encode() liefert sauberes JSON, das in jedem Editor geöffnet werden kann. 3. Bei der Arbeit mit russischen Zeichen json_en