php serialize()와 unserialize()의 용법 에 대해 간단히 말 하 다

serialize()와 unserialize()는 php 매 뉴 얼 에서 serialize―Generates a storable representation of a valueserialize―저장 가능 한 값 을 나타 내 는 unserialize―Creates a PHP value from a stored representationunserialize―저 장 된 표시 에서 PHP 를 만 드 는 값 이 분명 하 다.'a stored representation'의 해석 은 저장 가능 한 값 으로 번역 한 후에 도 여전히 그 뜻 을 이해 하기 어렵다.만약 언어 가 명확 하 게 표현 할 수 없다 면,우 리 는 구체 적 인 PHP 의 예 로 이 두 함수 의 용도

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?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()는 대상(object),배열(array)등의 PHP 변 수 를 문자열 로 정렬 하여 저장 하 는 것 입 니 다.직렬 화 된 문자열 은 데이터베이스,Session,Cookie 등 다른 곳 에 저장 할 수 있 습 니 다.직렬 화 된 작업 은 이러한 값 의 유형 과 구 조 를 잃 어 버 리 지 않 습 니 다.이렇게 하면 이러한 변수의 데 이 터 는 PHP 페이지,심지어 서로 다른 PHP 프로그램 에서 전 달 될 수 있다.unserialize()는 직렬 화 된 문자열 을 PHP 의 값 으로 변환 하 는 것 입 니 다.여기 서 PHP 매 뉴 얼 의 설명 을 참조 하여 위의 예 를 보면 다음 과 같은 말의 뜻 을 쉽게 알 수 있 을 것 입 니 다.직렬 화 된 문자열 을 PHP 의 값 으로 바 꾸 려 면 unserialize()를 사용 할 수 있 습 니 다.serialize()는 resource 를 제외 한 모든 종 류 를 처리 할 수 있 습 니 다.심지어 serialize()는 자신 을 가리 키 는 인용 배열 을 포함 할 수 있 습 니 다.serialize()의 배열/대상 에 대한 인용 도 저 장 됩 니 다.서열 화 대상 이 될 때,PHP 는 서열 동작 전에 이 대상 의 구성원 함수 를 호출 하려 고 합 니 다sleep()。이렇게 하면 대상 이 직렬 화 되 기 전에 모든 제거 작업 을 할 수 있다.유사 한 것 은 unserialize()복구 대상 을 사용 할 때 호출 합 니 다.wakeup()구성원 함수 unserialize()는 단일 한 직렬 화 된 변 수 를 조작 하여 PHP 의 값 으로 변환 합 니 다.변환 한 값 을 되 돌려 줍 니 다.integer,float,string,array 또는 object 로 할 수 있 습 니 다.전 달 된 문자열 이 직렬 화 되 지 않 으 면 FALSE 로 돌아 갑 니 다.

좋은 웹페이지 즐겨찾기