Как использовать функции php serialize () и unserialize ()

Опубликовано: 1 Февраля, 2022

В PHP сложные данные не могут быть перенесены или не могут быть сохранены. Если вы хотите непрерывно выполнять сложный набор данных за пределами одного сценария, то функции serialize () и unserialize () удобны для работы с этими сложными структурами данных. Функция serialize () просто получает совместимую форму со сложной структурой данных, которую PHP может обрабатывать, после чего вы можете отменить работу, используя функцию unserialize ().

Чаще всего нам нужно хранить сложный массив в базе данных или в файле из PHP. Некоторые из нас наверняка искали какую-нибудь встроенную функцию для выполнения этой задачи. Сложные массивы - это массивы с элементами более чем одного типа данных или массива. Но у нас уже есть удобное решение для этой ситуации.

Serialize() Function: The serialize() is an inbuilt function PHP that is used to serialize the given array. The serialize() function accepts a single parameter which is the data we want to serialize and returns a serialized string.

  • Syntax:
    serialize( $values_in_form_of_array )
  • Below program illustrate the Serialize() function.
    Program:
    <?php 
      
    // Complex array 
    $myvar = array
        "hello"
        42, 
        array(1, "two"), 
        "apple"
    ); 
      
    // Convert to a string 
    $string = serialize($myvar); 
      
    // Printing the serialized data 
    echo $string
      
    ?> 
  • Output:
    a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:
    0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}

Unserialize() Function: The unserialize() is an inbuilt function php that is used to unserialize the given serialized array to get back to the original value of the complex array, $myvar.

  • Syntax:
    unserialize( $serialized_array )
  • Below program illustrate both serialize() and unserialize() functions:
    Program:
    <?php 
      
    // Complex array 
    $myvar = array
        "hello"
        42, 
        array(1, "two"), 
        "apple"
    ); 
      
    // Serialize the above data 
    $string = serialize($myvar); 
      
    // Unserializing the data in $string 
    $newvar = unserialize($string); 
      
    // Printing the unserialized data 
    print_r($newvar); 
      
    ?> 
  • Output:
    Array
    (
        [0] => hello
        [1] => 42
        [2] => Array
            (
                [0] => 1
                [1] => two
            )
    
        [3] => apple
    )
    

Примечание: для более глубоких знаний вы можете проверить PHP | Статья о сериализации данных.