PHP Static遅延静的バインディング用法分析
1418 ワード
本明細書の例では、PHP Static遅延静的バインディング法について説明する.皆さんの参考にしてください.具体的には以下の通りです.
PHP5.3以降,遅延静的バインドstaticが導入されたが,それはどのような問題を解決するためであるのだろうか.phpの継承モデルには、親クラスで拡張クラスの最終状態を参照するのが難しいという問題がある.例を見てみましょう.
PHP 5.3には、定義段階で固定されていた式や変数を実行段階に変更して決定する遅延静的バインドという新しい特性が追加されています.例えば、サブクラスが親クラスの静的式を継承した場合、その値は変更されず、このような状況を望んでいない場合があります.
次の例では、上記の問題を解決します.
8行目のstatic::echoClass();Bがtestを呼び出すまで、元の定義が実行されないまで静的遅延バインド方法を定義します.
PHPに関する詳細について興味のある読者は、「php操作officeドキュメントテクニック総括(word,excel,access,pptを含む)」、「php日付と時間用法総括」、「phpオブジェクト向けプログラム設計入門チュートリアル」、「php文字列(string)用法総括」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.
PHP5.3以降,遅延静的バインドstaticが導入されたが,それはどのような問題を解決するためであるのだろうか.phpの継承モデルには、親クラスで拡張クラスの最終状態を参照するのが難しいという問題がある.例を見てみましょう.
class A
{
public static function echoClass(){
echo __CLASS__;
}
public static function test(){
self::echoClass();
}
}
class B extends A
{
public static function echoClass()
{
echo __CLASS__;
}
}
B::test(); // A
PHP 5.3には、定義段階で固定されていた式や変数を実行段階に変更して決定する遅延静的バインドという新しい特性が追加されています.例えば、サブクラスが親クラスの静的式を継承した場合、その値は変更されず、このような状況を望んでいない場合があります.
次の例では、上記の問題を解決します.
class A
{
public static function echoClass(){
echo __CLASS__;
}
public static function test()
{
static::echoClass();
}
}
class B extends A
{
public static function echoClass(){
echo __CLASS__;
}
}
B::test(); // B
8行目のstatic::echoClass();Bがtestを呼び出すまで、元の定義が実行されないまで静的遅延バインド方法を定義します.
PHPに関する詳細について興味のある読者は、「php操作officeドキュメントテクニック総括(word,excel,access,pptを含む)」、「php日付と時間用法総括」、「phpオブジェクト向けプログラム設計入門チュートリアル」、「php文字列(string)用法総括」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.