PHP 매뉴얼
이전 |  | 다음

# unserialize

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

unserialize -- 저장 표현에서 PHP 값을 작성합니다.

## 설명

mixed unserialize ( string str)

unserialize()은 하나의 일렬화된 변수(serialize() 참고)를 받아서 PHP 값으로 변환합니다. 변환한 값을 반환합니다. integer, float, string, array, object형이 될 수 있습니다. unserialize할 수 없는 문자열일 경우에는, `FALSE`를 반환합니다.

> unserialize_callback_func 지시어: unserialize중에 정의되지 않은 클래스를 작성해야 할 경우에 콜백 함수를 호출할 수 있습니다. (완전하지 않은 object "__PHP_Incomplete_Class"를 얻는것을 방지할 수 있습니다) `php.ini`나 ini_set()이나 `.htaccess`를 이용하여 'unserialize_callback_func'를 정의하십시오. 정의되지 않은 클래스를 작성해야 할 때 마다, 호출됩니다. 이 기능을 비활성화 하려면 간단히 이 설정을 비워두십시오. unserialize_callback_func 지시어는 PHP 4.2.0부터 사용할 수 있습니다.

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

예 1. 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에서 얻을 수 있습니다. } ?>`

> 참고: PHP 3에서, 메쏘드는 일렬화된 객체를 unserialize할 때 복구되지 않습니다. PHP 4는 이 제한을 제거했고, 속성과 메쏘드를 둘 다 복구합니다. 자세한 정보는 클래스와 객체의 객체 일렬화하기 섹션을 참고하십시오.

예 2. unserialize() 예제

`<?php
// 여기서는, 데이터베이스에서 가져온 문자열로부터 $session_data
// 배열에 세션 데이터를 읽어들일 때 unserialize()를 사용합니다.
// 이 예제는 serialize()에 설명된 예제를 보완합니다.
$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($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();
}
}
?>`

참고: serialize().

이전 | 처음으로 | 다음
strval | 위로 | unset