>  기사  >  백엔드 개발  >  PHP는 직렬화할 수 없나요?

PHP는 직렬화할 수 없나요?

青灯夜游
青灯夜游원래의
2022-04-26 17:13:252004검색

php는 직렬화를 달성할 수 있습니다. PHP에서는 serialize() 함수를 사용하여 직렬화를 구현하고 "serialize(직렬화할 변수)" 구문을 사용하여 값을 저장할 수 있는 문자열로 변환할 수 있습니다. 또한 unserialize() 함수를 사용하여 구현할 수도 있습니다. deserialization 및 re- 문자열을 PHP의 원래 값으로 다시 변경합니다.

PHP는 직렬화할 수 없나요?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

소위 직렬화는 메모리의 변수를 저장하거나 전송할 수 있는 문자열로 변환하는 프로세스입니다. 역직렬화는 사용하기에 적합한 시점에 이 문자열을 원래 변수로 변환하는 것입니다. 이 두 프로세스를 결합하면 데이터 저장 및 전송 작업을 쉽게 완료할 수 있어 프로그램의 유지 관리가 더욱 쉬워집니다.

php는 직렬화도 구현할 수 있습니다.

PHP에서는 serialize() 함수를 사용하여 직렬화를 구현하고 값을 저장할 수 있는 문자열로 변환할 수 있습니다. 또한 unserialize() 함수를 사용하여 문자열을 다시 PHP의 원래 값으로 변경할 수도 있습니다. 역직렬화.

serialize() 함수의 구문 형식은 다음과 같습니다.

serialize(mixed $value)

여기서 $value는 직렬화할 변수입니다.

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

【예제】 객체를 직렬화하려면 serialize() 함수를 사용하세요.

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
class WebSit{
    public $name;
    public $url;
    function __construct($name, $url){
        $this->name = $name;
        $this->url  = $url;
    }
}
$websit  = new WebSit(&#39;php中文网&#39;, &#39;https://www.php.cn/&#39;);
$ser_str = serialize($websit);
echo $ser_str;
?>

PHP는 직렬화할 수 없나요?

확장 지식: Deserialization

serialize() 함수를 사용하여 객체를 직렬화한 후 결과 문자열을 파일이나 데이터베이스에 저장한 다음 unserialize(필요한 경우) 함수를 사용하여 이 문자열을 역직렬화할 수 있습니다. unserialize() 함수의 구문 형식은 다음과 같습니다.

unserialize(string $str)

그 중 $str은 serialize() 함수를 사용하여 직렬화된 문자열입니다. 들어오는 문자열을 역직렬화할 수 없으면 FALSE가 반환되고 E_NOTICE가 생성됩니다.

【예제】위에서 얻은 문자열을 역직렬화합니다.

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
class WebSit{
    public $name;
    public $url;
    function __construct($name, $url){
        $this->name = $name;
        $this->url  = $url;
    }
}
$str = &#39;O:6:"WebSit":2:{s:4:"name";s:12:"php中文网";s:3:"url";s:19:"https://www.php.cn/";}&#39;;
$websit = unserialize($str);
var_dump($websit);
?>

PHP는 직렬화할 수 없나요?

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP는 직렬화할 수 없나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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