>백엔드 개발 >PHP 튜토리얼 >PHP 직렬화 및 역직렬화에 대한 자세한 설명

PHP 직렬화 및 역직렬화에 대한 자세한 설명

小云云
小云云원래의
2018-03-31 09:56:242995검색

소위 직렬화는 변수의 데이터를 문자열로 변환하는 것입니다(그러나 유형 변환과는 다릅니다). 목적은 이 문자열을 텍스트 파일로 저장하여 다른 환경에서 실행할 때 역직렬화하고 복원할 수 있도록 하는 것입니다. (일반적으로 데이터를 저장해야 하는 곳에 사용됨)

Serialization:

$str=serialize ($variable) //데이터를 문자열로 변환하여 $str 변수에 저장합니다.

file_put_conetents("텍스트 파일 경로",$str);//텍스트 파일에 파일을 저장합니다.

역직렬화:

$str=file_get_contents("Text file path");//파일에 저장된 직렬화된 정보를 가져옵니다.

$value=unserialize($str); //검색된 문자열 내용을 일반 데이터로 변환하여 $value에 저장합니다.

직렬화 및 역직렬화 중 마법 메서드:

__sleep(): 특정 클래스의 객체를 직렬화할 때 클래스의 __sleep() 메서드가 자동으로 호출됩니다.

사용 이 메서드는 필요한 데이터를 선택할 수 있습니다. 직렬화하려면 필요한 속성을 선택하고 배열에 저장하십시오. 배열은 끝 후에 반환되며 배열의 값은 직렬화되어야 합니다.

__wakeup(): __sleep()과 정반대로, 역직렬화 중에 호출되면 몇 가지 유용한 작업을 수행하여 상태를 직렬화 전 상태로 되돌릴 수 있습니다(예: 데이터베이스 연결). 직렬화는 필요한 속성만 문자열로 변경하여 저장하고, 역직렬화는 문자열을 다시 데이터로 변경하기만 하는데, 일부 상태는 이전 상태로 돌아가지 않기 때문에 이때 __wakeup()을 사용하여 정확하게 다시 동작할 수 있습니다. 이전과 같은 상태.

관련 권장 사항 : PHP 직렬화 및 사막화 원리에 대한 설명 PHP 직렬화 배열 기법 _php 튜토리얼 튜토리얼 PHP 직렬화 및 사막화 방법에 대한 설명, PHP 직렬화 사막화 방법의 자세한 설명 _php 튜토리얼.

위 내용은 PHP 직렬화 및 역직렬화에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.