遅延静的束縛(レイト スタティック バインディング : Late Static Bindings)

※この記事は読者によって投稿されたユーザー投稿です:
  • 編集部の見解や意向と異なる内容の場合があります
  • 編集部は内容について正確性を保証できません
  • 画像が表示されない場合、編集部では対応できません
  • 内容の追加・修正も編集部では対応できません

ヒューマンリソシア株式会社はコラム「遅延静的束縛(レイト スタティック バインディング : Late Static Bindings)」を公開しました。
LSBと省略されることもある「遅延静的束縛」について学んでいきましょう。
上級の試験範囲にもある上に機能としても大切なものです。

まずは、PHPマニュアルから引用してみましょう。
http://php.net/manual/ja/language.oop5.late-static-bindings.php

PHP 5.3.0 以降、PHP に遅延静的束縛と呼ばれる機能が搭載されます。
これを使用すると、静的継承のコンテキストで呼び出し元のクラスを参照できるようになります。
より正確に言うと、遅延静的束縛は直近の “非転送コール” のクラス名を保存します。
静的メソッドの場合、これは明示的に指定されたクラス (通常は :: 演算子の左側に書かれたもの) となります。
静的メソッド以外の場合は、そのオブジェクトのクラスとなります。

…これで分かる人がいたら「すごいなぁ」と本気でおいちゃんは思うわけなのですが。
実際の所、さほど「物凄く奇異だったり奇妙だったりする事」をやっているわけではなくて。
「クラス継承時、普通にインスタンスからアロー演算子でアクセスする時と同じような挙動になるような事ができるよ」っていうだけの、分かってしまえばとても素直な機能になります。

日本語で説明をするより、コードを重ねて説明するのが一番早いので、いくつかのコードで説明をしていきましょう。
まずは、LSBとは関係ないっぽくみえる、普通の「newでインスタンス作る」系の、継承を交えたクラスの挙動です

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

この記事が役に立ったらシェア!
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

人気記事トップ10(過去7日間)

今日の用語

NDA
Non-Disclosure Agreementの略。一般には「秘密保持契約」と ...→用語集へ

インフォメーション

RSSフィード


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