>  기사  >  백엔드 개발  >  PHP에서 매직 메소드를 사용하는 예

PHP에서 매직 메소드를 사용하는 예

little bottle
little bottle앞으로
2019-04-18 11:56:312593검색

이 기사에서 편집자는 코드와 함께 PHP의 매직 메소드 사용에 대해 간략하게 설명할 것입니다.

"마법의 방법"이란 무엇인가요?

PHP에서 두 개의 밑줄로 시작하는 메서드, __construct(), __destruct (), __call(), __callStatic(),__get(), __set(), __isset(), __unset (), __sleep(), __wakeup() , __toString(), __set_state,() __clone() __autoload() 등을 "매직 메서드"라고 합니다. PHP가 이러한 매직 메소드를 호출하도록 하려면 먼저 클래스에서 정의해야 합니다. 그렇지 않으면 PHP는 생성되지 않은 매직 메소드를 실행하지 않습니다.

1.__get __set은 액세스할 수 없는 속성을 할당하고 읽을 때 호출됩니다.

2.__sleep은 객체를 직렬화할 때 호출됩니다.

3.__wakeup은 객체를 역직렬화할 때 호출됩니다.

4 객체를 직렬화할 때는 지정된 속성만 직렬화할 수 있습니다. 예를 들어 이 객체 문자열을 memcache에 저장하려고 할 때 더 유용합니다. 5. 예를 들어 다음 예에서는 데이터 속성만 제거하고 제한 사항을 적용합니다. __수면 기능

<?php
class Test{
	public $name;
	protected $data=array();
	public function __set($name,$value){
		$this->data[$name]=$value;
	}
	public function __get($name){
		if(!isset($this->data[$name])){
			return "";
		}
		return $this->data[$name];
	}
	public function __sleep(){
		echo "sleep...\r\n";
		return array(&#39;data&#39;);
	}
	public function __wakeup(){
		echo "wakeup...\r\n";
	}
}
$test=new Test();
$test->name="我不会被序列化进去";
$test->bbbb="taoshihan";
$testObjectStr=serialize($test);
var_dump($testObjectStr);
var_dump(unserialize($testObjectStr));

관련 튜토리얼:

초보부터 마스터까지 PHP 프로그래밍 전체 비디오 튜토리얼 세트

위 내용은 PHP에서 매직 메소드를 사용하는 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제