ホームページ >バックエンド開発 >PHPチュートリアル >phpマジックメソッド__sleep__wakeup__toString__debuginfo

phpマジックメソッド__sleep__wakeup__toString__debuginfo

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-29 09:07:241164ブラウズ

__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() を使用してシリアル化する場合、クラスに __wakeup() マジック メソッドがあるかどうかを検出し、存在する場合は __wakeup() を呼び出します。最初にいくつかの初期化操作を実行します。

__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>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>

__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>__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>

').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 チュートリアルに興味のある友人にとって役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。