이 글에서는 주로 php serialize()와 unserialize() 사이의 몇 가지 차이점을 소개합니다. 필요한 친구는 이를 참조할 수 있습니다.
serialize() 및 unserialize()는 php 매뉴얼에 설명되어 있습니다.
serialize — 저장 가능한 표현을 생성합니다. 값
serialize
— 저장된 표현에서 PHP 값 생성serialize
— 产生一个可存储的值的表示
unserialize — Creates a PHP value from a stored representation
unserialize
unserialize
— 저장된 표현에서 생성 의 PHP 값 분명히 "저장된 표현"에 대한 설명은 저장 가능한 값으로 변환된 후에도 여전히 매우 혼란스럽습니다. 언어를 명확하게 표현할 수 없는 경우 특정 PHP 예제를 사용하여 이 두 함수의 사용법을 배울 수 있습니다.
<?php //声明一个类 class dog { 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->owner = $in_owner; } function getage() { return ($this->age * 365); } function getowner() { return ($this->owner); } function getname() { return ($this->name); } } //实例化这个类 $ourfirstdog = new dog("Rover",12,"Lisa and Graham"); //用serialize函数将这个实例转化为一个序列化的字符串 $dogdisc = serialize($ourfirstdog); print $dogdisc; //$ourfirstdog 已经序列化为字符串 O:3:"dog":3:{s:4:"name";s:5:"Rover";s:3:"age";i:12;s:5:"owner";s:15:"Lisa and Graham";} print '<BR>'; /* ----------------------------------------------------------------------- 在这里你可以将字符串 $dogdisc 存储到任何地方如 session,cookie,数据库,php文件 ----------------------------------------------------------------------- */ //我们在此注销这个类 unset($ourfirstdog); /* 还原操作 */ /* ----------------------------------------------------------------------- 在这里将字符串 $dogdisc 从你存储的地方读出来如 session,cookie,数据库,php文件 ----------------------------------------------------------------------- */ //我们在这里用 unserialize() 还原已经序列化的对象 $pet = unserialize($dogdisc); //此时的 $pet 已经是前面的 $ourfirstdog 对象了 //获得年龄和名字属性 $old = $pet->getage(); $name = $pet->getname(); //这个类此时无需实例化可以继续使用,而且属性和值都是保持在序列化之前的状态 print "Our first dog is called $name and is $old days old<br>"; print '<BR>'; ?>예제의 개체를 배열과 같은 다른 유형으로 변경할 수도 있습니다. 같은 효과입니다! 실제로 serialize()는 객체, 배열 등 PHP의 변수 값을 문자열로 직렬화하여 저장하는 것입니다. 직렬화된 문자열을 데이터베이스와 세션, 쿠키 등 다른 곳에 저장할 수 있습니다. 등을 사용하면 직렬화 작업에서 이러한 값의 유형과 구조가 손실되지 않습니다. 이러한 방식으로 이러한 변수의 데이터는 PHP 페이지와 다른 PHP 프로그램 간에 전달될 수 있습니다. 그리고 unserialize()는 직렬화된 문자열을 다시 PHP 값으로 변환하는 것입니다. 다음은 PHP 매뉴얼의 또 다른 설명입니다. 위의 예를 읽고 나면 다음 단어의 의미를 쉽게 이해할 수 있습니다. 직렬화된 문자열을 다시 PHP 값으로 변경하려면 unserialize( ) . serialize()는 리소스를 제외한 모든 유형을 처리할 수 있습니다. 자신에 대한 참조가 포함된 배열을 serialize()할 수도 있습니다. 직렬화()하는 배열/객체의 참조도 저장됩니다. 객체를 직렬화할 때 PHP는 시퀀스 작업 전에 객체의 멤버 함수 __sleep()을 호출하려고 시도합니다. 이를 통해 객체가 직렬화되기 전에 모든 정리 작업을 수행할 수 있습니다. 마찬가지로 unserialize()를 사용하여 객체를 복원할 때 __wakeup() 멤버 함수는 단일 직렬화된 변수에 대해 작동하고 이를 다시 PHP 값으로 변환합니다. 반환되는 것은 정수, 부동 소수점, 문자열, 배열 또는 객체일 수 있는 변환된 값입니다. 전달된 문자열이 역직렬화할 수 없는 경우 FALSE를 반환합니다. 관련 권장사항:
PHP의 serialize() 및 unserialize() 함수 예제에 대한 자세한 설명
양식 서식 지정 플러그인 jquery.serializeJSON에 대한 자세한 설명
직렬화하고 업로드할 Ajax serialize() 양식 파일
🎜
위 내용은 PHP serialize()와 unserialize()의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!