update : 2015.11.03
php.shukuma.com

검색:
 
 
저장 표현에서 PHP 값을 작성

unserialize

(PHP 4, PHP 5, PHP 7)

unserialize 저장 표현에서 PHP 값을 작성

설명

mixed unserialize ( string $str )

unserialize()은 하나의 일렬화된 변수를 받아서 PHP 값으로 변환합니다.

인수

str

일렬화된 문자열.

변수가 객체로 unserialize되고, 성공적으로 객체로 재구성되면, PHP는 자동적으로 __wakeup() 멤버 함수를 호출합니다. (존재한다면)

Note: unserialize_callback_func 지시어

일렬화를 푸는 도중에 미정의된 클래스가 생성될 때 호출할 콜백 함수를 설정할 수 있습니다. (미완성된 object "__PHP_Incomplete_Class"를 방지합니다) php.ini, ini_set(), .htaccess 등을 이용해서 'unserialize_callback_func'를 정의하십시오. 미정의 클래스가 생성되어야 할 때마다 호출됩니다. 이 기능을 끄려면 설정을 비워두면 됩니다.

반환값

변환된 값이 반환되며, boolean, integer, float, string, array, object가 될 수 있습니다.

주어진 문자열에서 일렬화를 풀 수 없을 때는 FALSE를 반환하고 E_NOTICE가 발생합니다.

변경점

버전 설명
4.2.0 unserialize_callback_func 지시어를 사용할 수 있게 되었습니다.

예제

Example #1 unserialize() 예제

<?php
// 여기서는, 데이터베이스에서 가져온 문자열로부터 $session_data
// 배열에 세션 데이터를 읽어들일 때 unserialize()를 사용합니다.
// 이 예제는 serialize()에 설명된 예제를 보완합니다.

$conn odbc_connect("webdb""php""chicken");
$stmt odbc_prepare($conn"SELECT data FROM sessions WHERE id = ?");
$sqldata = array($_SERVER['PHP_AUTH_USER']);
if (!
odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) {
    
// excute나 fetch가 실패하면, 빈 배열로 초기화합니다.
    
$session_data = array();
} else {
    
// 여기서는 일렬화된 데이터를 $tmp[0]에 가집니다.
    
$session_data unserialize($tmp[0]);
    if (!
is_array($session_data)) {
        
// 무언가 잘못되면, 빈 배열로 초기화합니다.
        
$session_data = array();
    }
}
?>

Example #2 unserialize_callback_func 예제

<?php
$serialized_object
='O:1:"a":1:{s:5:"value";s:3:"100";}';

// unserialize_callback_func 지시어는 PHP 4.2.0부터 사용할 수 있습니다.
ini_set('unserialize_callback_func''mycallback'); // 콜백 함수를 설정

function mycallback($classname)
{
    
// 단지 클래스를 정의하는 파일을 포함합니다.
    // 어떤 클래스 정의가 필요한가는 $classname에서 얻을 수 있습니다.
}
?>

주의

Warning

오류가 발생했을 때와 일렬화된 FALSE 값을 복구했을 때, 둘 다 FALSE를 반환합니다. strserialize(false)와 비교하거나, E_NOTICE 발생을 확인해서 이러한 특별한 경우를 처리할 수 있습니다.

참고