> 백엔드 개발 > PHP 튜토리얼 > PHP 함수 serialize() 및 unserialize() 사용 예_php 팁

PHP 함수 serialize() 및 unserialize() 사용 예_php 팁

WBOY
풀어 주다: 2016-05-16 20:32:44
원래의
1200명이 탐색했습니다.

이 기사의 예에서는 PHP 함수 serialize() 및 unserialize()의 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 방법은 다음과 같습니다.

이 예제에서는 주로 PHP 함수 serialize() 및 unserialize()에 대한 설명과 사례를 설명합니다. 직렬화된 문자열을 다시 PHP 값으로 변환하려면 unserialize()를 사용하세요. serialize()는 리소스를 제외한 모든 유형을 처리할 수 있습니다. 자신에 대한 참조가 포함된 배열을 serialize()할 수도 있습니다. 직렬화()하는 배열/객체의 참조도 저장됩니다.

serialize()는 값을 나타내는 바이트 스트림을 포함하고 어디에나 저장할 수 있는 문자열을 반환합니다. 이를 통해 유형과 구조를 잃지 않고 PHP 값을 저장하거나 전달할 수 있습니다.

직렬화된 문자열을 다시 PHP 값으로 변경하려면 unserialize()를 사용하면 됩니다. serialize()는 리소스를 제외한 모든 유형을 처리할 수 있습니다. 자신에 대한 참조가 포함된 배열을 serialize()할 수도 있습니다. 직렬화()하는 배열/객체의 참조도 저장됩니다.

객체를 직렬화할 때 PHP는 시퀀스 작업 전에 객체의 멤버 함수 __sleep()을 호출하려고 시도합니다. 이를 통해 객체가 직렬화되기 전에 모든 정리 작업을 수행할 수 있습니다. 마찬가지로, unserialize()를 사용하여 객체를 복원하면 __wakeup() 멤버 함수가 호출됩니다.

참고: PHP 3에서는 객체 속성이 직렬화되지만 메서드는 손실됩니다. PHP 4는 이러한 제한을 깨고 속성과 메서드를 모두 저장할 수 있습니다. 자세한 내용은 클래스 및 개체의 직렬화된 개체 섹션을 참조하세요.
PHP 매뉴얼의 serialize() 및 unserialize()에 대한 설명은 다음과 같습니다.

serialize — 저장 가능한 값 표현을 생성합니다
serialize — 저장 가능한 값 표현 생성
unserialize — 저장된 표현에서 PHP 값을 생성합니다
unserialize — 저장된 표현에서 PHP 값을 생성합니다
직렬화, "직렬화, 연속화"로 번역됨, 일반적으로 "직렬화"라고 함

이 기능은 특히 unserialize와 함께 사용할 때 매우 유용합니다
데이터를 데이터베이스에 저장하거나 파일에 기록할 때 더 유용한 곳인 것 같아요
물론 이런 종류의 데이터는 상대적으로 복잡해야 하며(복잡하지도 않고 직렬화할 필요도 없으며 적어도 배열이어야 한다고 생각합니다) 데이터베이스에서 "인덱스 또는 기본 키"가 아니어야 합니다. 물론 이 데이터베이스 필드는 시스템에 있는 것이 가장 좋으며 어떤 검색 프로그램과도 관련이 없습니다. 물론 특정 데이터가 암호화되거나 변경되지 않았기 때문에 직렬화 후에도 데이터를 검색할 수 있습니다.

코드 복사 코드는 다음과 같습니다.
//간단하다
$배열 = 배열();
$array['key'] = '웹사이트';
$array['value']='www.isoji.org';
$a = 직렬화($array);
에코 $a;
설정 해제($array);
$a = 직렬화 해제($a);
print_r($a);

//클래스 선언
개 클래스 {
var $name;
var $age;
var $owner;
function dog($in_name="unnamed",$in_age="0",$in_owner="unknown") {
$this->name = $in_name;
$this->age = $in_age;
$this->소유자 = $in_owner;
}
함수 getage() {
반환($this->age * 365);
}

함수 getowner() {
반환($this->owner);
}

함수 getname() {
return ($this->name);
}
}
//이 클래스를 인스턴스화
$ourfirstdog = 새 개("Rover",12,"Lisa and Graham");
//직렬화 함수를 사용하여 이 인스턴스를 직렬화된 문자열로 변환합니다
$dogdisc = 직렬화($ourfirstdog);
print $dogdisc; //$ourfirstdog는 문자열 O:3:"dog":3:{s:4:"name";s:5:"Rover";s:3:"age";i로 직렬화되었습니다. :12;s:5:"소유자";s:15:"리사와 그레이엄";}
인쇄 '
';
/*
여기서 세션, 쿠키, 데이터베이스, PHP 파일 등 어디에나 $dogdisc 문자열을 저장할 수 있습니다
*/
//여기서 이 클래스 등록을 취소합니다
설정되지 않음($ourfirstdog);
/* 복원 작업 */
/*
여기에서 세션, 쿠키, 데이터베이스, PHP 파일 등 저장 위치에서 $dogdisc 문자열을 읽어보세요.
*/

//여기서는 직렬화된 객체를 복원하기 위해 unserialize()를 사용합니다
$pet = unserialize($dogdisc); //이 시점의 $pet은 이미 이전 $ourfirstdog 객체입니다
//나이 및 이름 속성 가져오기
$old = $pet->getage();
$name = $pet->getname();
//이 클래스는 현재 인스턴스화 없이 계속 사용할 수 있으며, 속성과 값은 직렬화 전 상태를 유지합니다
print "우리의 첫 번째 개는 $name이라고 불리며 $old days
입니다.";
인쇄 '
';
?>

이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿