マジックメソッドを巡る旅 その10

ヒューマンリソシア 2016/1/1(金) 14:05 tweet16このエントリーをはてなブックマークに追加 印刷用
※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。また、編集部はこの内容について正確性を保証できません。

ヒューマンリソシア株式会社はコラム「マジックメソッドを巡る旅 その10」を公開しました。
まずは「継承を含む場合」の注意点です。

単純に「__sleep()が存在しない」場合は、特に何の問題もありません。

class hoge {
public function __wakeup() {
}
public function set_i($i) { $this->i_ = $i; }
public function set_j($i) { $this->j_ = $i; }
//
private $i_;
private $j_;
}
class foo extends hoge{
public function set_k($i) { $this->k_ = $i; }
//
private $k_;
}
//
$obj = new foo();
$obj->set_i(10);
$obj->set_j(20);
$obj->set_k(30);
$s = serialize($obj);
//
$obj2 = unserialize($s);
var_dump($obj2);

結果
object(foo)#2 (3) {
[“k_”:”foo”:private]=>
int(30)
[“i_”:”hoge”:private]=>
int(10)
[“j_”:”hoge”:private]=>
int(20)
}

しかし、もし__sleep()を使う場合は、プロパティを全て「protected」にする必要があります。
また、__sleep()の中を「parent::とarray_mergeを使って、親の変数配列は親の__sleep()の情報を使う」ほうが、
変更などを考えると、よりよいでしょう。

この続きは以下をご覧ください
http://resocia.jp/column/2112/

この記事が役に立ったらシェア!
tweet16このエントリーをはてなブックマークに追加
みんなが読んでるWeb担メルマガで、あなたも最新情報をチェック
  • SEOやアクセス解析のなどノウハウをゲット
  • 事例やインタビューも見逃さない
  • 要チェックのセミナー情報も届く
  • 編集長コラムを一足先に読める
日本赤十字社 東日本大震災 義援金募集
みんなが読んでるWeb担メルマガで、あなたも最新情報をチェック
  • SEOやアクセス解析のなどノウハウをゲット
  • 事例やインタビューも見逃さない
  • 要チェックのセミナー情報も届く
  • 編集長コラムを一足先に読める

今日の用語

広告代理店
広告を出したい者(広告主)と広告を掲載する者(媒体)の間にたつ存在。 媒体 ... →用語集へ

連載/特集コーナーから探す

インフォメーション

Web担のメルマガを購読しませんか?
Web担の記事がコンパクトに毎週届くメールマガジン「Web担ウィークリー」は、10万人が読んでいる人気メルマガ。忙しいあなたの情報収集力をアップさせる強い味方で、お得な情報もいち早く入手できます。

Web担に広告を掲載しませんか?
購読者数10万人のメールマガジン広告をはじめとする広告サービスで、御社の認知向上やセミナー集客を強力にお手伝いいたします。

サイトマップ
RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]

GOLD SPONSOR
さくらインターネット株式会社株式会社KDDI ウェブコミュニケーションズ株式会社日本レジストリサービスオープンテキスト株式会社トランスコスモス株式会社株式会社ハイパーボックスDomain Keeper
SPONSOR
株式会社キノトロープ株式会社アイレップ株式会社ニューズ・ツー・ユーシックス・アパート株式会社ウェブアンテナ株式会社サイバーエージェント富士通株式会社Sitecore