(PHP 4, PHP 5)
serialize — 값의 저장 표현을 생성
값의 저장 표현을 생성합니다.
이는 PHP 값을 저장하거나 전달할 때 자료형이나 구조를 잃어버리지 않게 합니다.
일렬화된 문자열을 다시 PHP 변수로 만드려면, unserialize()를 사용합니다.
일렬화할 값. serialize()는 resource형을 제외한 모든 형을 다룹니다. 자기 자신을 참조하는 배열을 serialize()할 수도 있습니다. 배열/객체 안의 순환 참조도 일렬화하여 저장됩니다. 그 외의 다른 참조는 읽어버립니다.
객체를 일렬화할 때, 일렬화 전에 __sleep 멤버 함수를 호출합니다. 이로써 일렬화하기 전에 객체를 마지막으로 정리할 수 있습니다. 마찬가지로, unserialize()을 사용하여 객체를 되돌릴 때는 __wakeup 멤버 함수를 호출합니다.
Note: 객체의 private 멤버는 이름 앞에 클래스 이름을 덧붙입니다; protected 멤버는 이름 앞에 '*'를 덧붙입니다. 이런 덧붙인 값은 모두 null 바이트를 가집니다.
value 의 어디에라도 저장할 수 있는 바이트 스트림 표현을 가지는 문자열을 반환합니다.
Example #1 serialize() 예제
<?php
// $session_data는 현재 사용자의 세션 정보를 다차원 배열로
// 가집니다. 요청의 마지막에 이것을 데이터베이스에 저장하기
// 위해서 serialize()를 사용합니다.
$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, &$sqldata)) {
$stmt = odbc_prepare($conn,
"INSERT INTO sessions (id, data) VALUES(?, ?)");
if (!odbc_execute($stmt, &$sqldata)) {
/* 무언가 잘못되었을때 할 일.. */
}
}
?>
Note: PHP 내부 객체를 일렬화할 수 없습니다.