__sleep():
serialize()를 사용하여 직렬화할 때 클래스에 __sleep() 매직 메서드가 있는지 감지합니다. 있으면 __sleep()이 호출됩니다. 먼저 직렬화해야 하는 객체의 모든 변수 이름을 포함하는 배열
<code><span><?php</span><span><span>class</span><span>test</span>{</span><span>public</span><span>$name</span>=<span>'demon'</span>; <span>private</span><span>$age</span>=<span>'19'</span>; <span>public</span><span><span>function</span><span>__sleep</span><span>()</span>{</span><span>return</span> [<span>'name'</span>]; } } <span>$test</span> = <span>new</span> test(); <span>echo</span> serialize(<span>$test</span>); <span>//输出结果:O:4:"test":1:{s:4:"name";s:5:"demon";}</span></code>
__wakeup()
serialize()를 사용하여 직렬화할 때 변수가 있는지 감지합니다. 가능한 경우 Magic 메서드 클래스의 __wakeup()은 먼저 __wakeup()을 호출하여 일부 초기화 작업을 수행합니다.
<code><span><?php</span><span><span>class</span><span>test</span>{</span><span>public</span><span>$name</span>=<span>'demon'</span>; <span>private</span><span>$age</span>=<span>'19'</span>; <span>public</span><span><span>function</span><span>say</span><span>()</span>{</span><span>echo</span><span>"反序列化"</span>; } <span>public</span><span><span>function</span><span>__wakeup</span><span>()</span>{</span><span>$this</span>->say(); } } <span>$test</span> = <span>new</span> test(); unserialize(serialize(<span>$test</span>)); <span>//输出结果:反序列化</span></span></code>
__toString()
__toString()은 클래스가 문자열 응답으로 사용되며 문자열만 반환할 수 있습니다.
<code><span><?php</span><span><span>class</span><span>test</span>{</span><span>public</span><span>$name</span>=<span>'demon'</span>; <span>private</span><span>$age</span>=<span>'19'</span>; <span>public</span><span><span>function</span><span>__toString</span><span>()</span>{</span><span>return</span><span>'test'</span>; } } <span>$test</span> = <span>new</span> test(); <span>echo</span><span>$test</span>; <span>//输出结果:test</span></code>
__debuginfo()
__debuginfo()는 php5.6에 추가된 기능입니다. var_dump()가 클래스일 때의 응답입니다. , 속성의 배열
<code><span><?php</span><span><span>class</span><span>test</span>{</span><span>public</span><span>$name</span>=<span>'demon'</span>; <span>private</span><span>$age</span>=<span>'19'</span>; <span>public</span><span><span>function</span><span>__debuginfo</span><span>()</span>{</span><span>return</span> [<span>'name'</span>]; } } <span>$test</span> = <span>new</span> test(); var_dump(<span>$test</span>); <span>//输出结果:object(test)#1 (1) { [0]=> string(4) "name" }</span></code>').addClass('pre-numbering').hide();를 포함하는 객체를 반환합니다. $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });
위 내용은 관련 내용을 포함하여 PHP 매직 메소드인 __sleep __wakeup __toString __debuginfo를 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.