ホームページ > バックエンド開発 > PHPチュートリアル > PHP でのマジック メソッドの使用例

PHP でのマジック メソッドの使用例

little bottle
リリース: 2023-04-05 22:28:01
転載
2637 人が閲覧しました

この記事では、編集者が PHP でのマジック メソッドの使用法とそれに付随するコードについて簡単に説明します。興味のある方はぜひご覧ください。

「魔法のメソッド」とは何ですか?

PHP の 2 つのアンダースコアで始まるメソッド、__construct()、__destruct ()、__call()、__callStatic()、__get()、__set()、__isset()、__unset ( )、__sleep ()、__wakeup()、__toString()、__set_state,()、__clone()、__autoload()などは「マジックメソッド」と呼ばれます。 PHP でこれらのマジック メソッドを呼び出したい場合は、最初にクラス内で定義する必要があります。そうしないと、PHP は作成されていないマジック メソッドを実行しません。

1.__get __set は、アクセスできない属性の割り当ておよび読み取り時に呼び出されます。

2.__sleep は、オブジェクトのシリアル化時に呼び出されます

3.__wakeup は Call

4オブジェクトを逆シリアル化するとき. オブジェクトをシリアル化するときは、指定した属性のみをシリアル化し、シリアル化後にサイズを減らすことができます。オブジェクト文字列を、たとえば memcache に保存したい場合は、より便利です

5。たとえば、次の例では、データ属性のみをシリアル化し、__sleep 関数で制限しました。


<?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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート