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

본문 바로가기
사이트 내 전체검색

php

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

페이지 정보

작성자 웹지기 댓글 0건 조회 4,177회 작성일 18-09-11 14:39

본문

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

댓글목록

등록된 댓글이 없습니다.

Total 82건 5 페이지
  • 22 [ php ] 이미지 직접 링크 막기
  • .htaccess 파일에 추가해서 사용SetEnvIfNoCase Referer "^http://www.mydomain.com/" locally_linked=1SetEnvIfNoCase Referer "^http://www.mydomain.com$" locally_linked=1SetEnvIfNoCase Referer "^http://mydomain.com/" locally_linked=1SetEnvIfNoCase Referer "^ht...
  • 웹지기 09-11 4637 0 0 댓글 0
  • 20 [ php ] $$aa, $$$aa 와 같은 형태로 푠현되는 가변변수
  • [code] <?php $a = 'hello'; $$a = 'world'; echo ' ::: a ::: '.$a.' ::: $$a ::: '.${$a}; ?> [/code] 이와 같은 형태의 값이 있을 때 [code] <?php echo ' ::: $$a ::: '." $a $hello "; ?> [/code] 와 같이 hello world를 출력 배열을 갖는 가변변수는 $$a[1] 를...
  • 웹지기 10-10 4595 0 0 댓글 0
  • 18 [ php ] 문자 또는 숫자를 ○ 로 변경(특정문자 안보이게 가릴때)
  • 특정문자를 안보이게 가리거나 숨겨야 할 때 사용하는 방법 UTF-8 기준입니다. 참고로 막 패턴입니다. $str = substr($str, 0, -3)."○"; echo preg_replace('/.(?!.)/u','○','홍길동'); // 홍길○ echo preg_replace('/.(?=.)/u','○','홍길동'); // ○○동 echo preg_replace('/.(?!..)/u','○','홍길동'); // 홍○○ echo preg_replace('/.(?=...
  • 웹지기 09-11 4490 0 0 댓글 0
  • 17 [ php ] ereg_replace // eregi_replace 사용법
  • ereg_replace는 str_replace와 형식은 같으나, 정규식을 사용한다는 점이 다르다. $a = "1a2b3"; $a = ereg_replace("[a-z]", "x", $a); echo $a; eregi_replace는 ereg_replace와 형식은 같으나 대소문자를 구분하지 않는다는 점이 다릅니다. $a = "1AB"; $a = ereg_replace("[a-z]", ...
  • 웹지기 09-19 4376 0 0 댓글 0
  • 16 [ php ] php로 디렉토리 삭제
  • php 디렉토리와 하위 파일까지 한꺼번에 삭제하는 함수[code]// 사용시 모든 데이터가 날아가므로 주의를 요함(Recursive)function LIB_removeAllData( $URL ){ if( is_dir( $URL )) { if( $dh = opendir( $URL ) ) { while( ( $file = readdir( $dh ) ) !== false ) { if( $file == '.' || $file == ".." ) continue; if( f...
  • 웹지기 09-30 4364 0 0 댓글 0
  • 열람중 [ php ] Class 사용법 정리 7. 매직함수
  • 7매직함수__sleep, __wakeup과같이"__"로시작하는매직함수(magic function)는 PHP 클래스내에서특수한목적으로사용됩니다.따라서이함수들이가지고있는문서화된매직기능을사용할필요가없다면클래스내에이함수들을정의해서는안됩니다.__sleepserialize 함수를통해객체를직렬화할때해당클래스에매직함수 __sleep가정의되어있는지확인합니다.만약정의되어있다면객체를직렬화하기전에 __sleep 함수를수행합니다.이함수는직렬화하기전에객체멤버에대하여조작해야하는작업,또는직렬화하기전에미리수행...
  • 웹지기 09-11 4178 0 0 댓글 0
  • 14 [ php ] php에서 mysql 버젼 확인 하기
  • $sql = " SELECT version() AS mysql_version ";$row = sql_fetch($sql);echo $row['mysql_version'];$sql = " SHOW VARIABLES LIKE '%VERSION%' ";$result = sql_query($sql);while($row = sql_fetch_array($result)) { print_r2($row);}mysqli 에서는 오류를 내뱉는다.echo mysql_get_ser...
  • 웹지기 08-30 4115 0 0 댓글 0
  • 11 [ php ] glob 이용 패턴으로 파일 include 하기
  • [code]$library = array_merge( glob('**/*.class.php'));foreach($library as $lib) include_once $lib;[/code]PHP프레임워크를 제작하던 중 쓰던 방법glob 로 패턴으로나온 리스트를 array로 담고 그걸 merge로 합쳐서 include 하는 형태[code]array glob ( string $pattern [, int $flags= 0 ] )[/code]
  • 웹지기 09-28 3997 0 0 댓글 0
  • 10 [ php ] Class 사용법 정리 3. 클래스상속
  • 3.클래스상속클래스를상속하려면?기존에이미작성된클래스를상속(class inheritance)받으면이미작성된메쏘드와멤버변수를그대로이어받게됩니다.상속받은특성에덧붙여새로운특성을추가하는방법으로새로운클래스를정의하게됩니다.이와같이기존의클래스로부터특성을이어받는것을상속이라고합니다.이때확장된클래스를정의하기위해"extends"라는키워드를사용합니다.부모클래스&자식클래스에관련된용어기존의클래스와확장된클래스를나타내는용어는객체지향언어마다다양하게사용되고있습니다.그러나어떤용어를사용하더라도같은의미...
  • 웹지기 09-11 3938 0 0 댓글 0
  • 9 [ php ] 다차원 배열을 원하는 필드로 정렬하고 싶을 때
  • 데이터베이스 테이블을 모방 한 배열이 있다고 가정합니다.각 배열 요소는 행을 나타내며 각 행 내에서 필드 이름과 값을 포함하는 다른 배열입니다.[code]Array( [0] => Array ( [name] => 'Sony TV' [price] => 600.00 ) [1] => Array ( [name] => 'LG TV' [price] => 350.00 ...
  • 웹지기 10-04 3909 0 0 댓글 1
게시물 검색

회원로그인

접속자집계

오늘
108
어제
8,307
최대
33,828
전체
8,651,574

그누보드5
Copyright © funyphp.com. All rights reserved.