[ php ] Class 사용법 정리 7. 매직함수 > php

본문 바로가기

사이트 내 전체검색

php

[ php ] Class 사용법 정리 7. 매직함수

작성일 18-09-11 14:39

페이지 정보

작성자 웹지기 조회 4,094회 댓글 0건

본문

7매직함수  


__sleep, __wakeup과같이"__"로시작하는매직함수(magic function)는 PHP 클래스내에서특수한목적으로사용됩니다.

따라서이함수들이가지고있는문서화된매직기능을사용할필요가없다면클래스내에이함수들을정의해서는안됩니다.


__sleep


serialize 함수를통해객체를직렬화할때해당클래스에매직함수 __sleep가정의되어있는지확인합니다.

만약정의되어있다면객체를직렬화하기전에 __sleep 함수를수행합니다.

이함수는직렬화하기전에객체멤버에대하여조작해야하는작업,또는직렬화하기전에미리수행해야하는작업(예를들어데이터베이스연결종료등)을수행할수있습니다.

__sleep 함수는직렬화할객체의모든멤버변수의이름을변수에담아반환합니다.

classScott{

  var $error;

  var $svar = array();


functionScott(){

    $this->svar['Hello']="World";

  }


function __sleep(){

    $this->svar['Hello']="Yawn";

    // return list of instance-variables to be serialized

    return array('error','svar');

  }

}


$x =newScott();

print_r($x);

$y = serialize($x);

$z = unserialize($y);

print_r($z);


__wakeup


unserialize 함수를통해문자열을객체화할때해당클래스에매직함수 __wakeup가정의되어있는지확인합니다.

만약정의되어있다면객체화하기전에 __wakeup 함수를수행합니다.

이함수를수행할때객체화하기전에객체를상대로수행해야하는작업,또는객체화하기전에미리수행해야하는작업(예를들어데이터베이스연결등)을수행할수있습니다.


classScott{

  var $error;

  var $svar = array();


functionScott(){

    $this->svar['Hello']="World";

  }


function __sleep(){

    $this->svar['Hello']="Yawn";

    // return list of instance-variables to be serialized

    return array('error','svar');

  }


function __wakeup(){

    $this->svar['test']="I'm here!";

  }

}


$x =newScott();

print_r($x);

$y = serialize($x);

$z = unserialize($y);

print_r($z);


추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 82건 1 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기