PHP後期静的バインディング例を簡単に分析する。
本論文の例はPHPの後期の静的結合について述べる。皆さんに参考にしてあげます。具体的には以下の通りです。
php 5.3から始まり、phpは後期バインディングという機能を増加させ、継承範囲内で静的呼び出しのクラスを参照するために使用される。
この機能は言語内部の観点から北を「後期静的バインディング」と名付けた。後期バインディングとは、「static」という意味です。現在の方法の存在を定義するクラスとしては解析されず、実際の運転時に計算されるもので、「静的バインディング」にもなります。彼は(静的方法の呼び出しに限定されない)ために使用することができる。
self:の制限
例:
A
静的結合の使用法
静的バインディングは、最初に呼び出したクラスをキーワードとして導入することによって制限を回避しようとします。簡単に言えば、このキーワードは上述の中でtest()を呼び出した時に引用するクラスはBであり、Aではない。最終的には、新しいキーワードを引用しないで、予約したstaticキーワードを使うことにしました。
例:
B
後期静的バインディングの処理は、従来全く解決されていなかった静的呼び出しを解決し、他方、静的呼び出しがparentを使用する場合:またはself::呼び出し情報を転送します。
A
C
C
例:
a.
b
特別声明:
PHPについてもっと興味のある読者は、本駅のテーマを見てもいいです。「php対象プログラム設計入門教程」、「PHP配列(Aray)操作テクニック大全」、「PHP基本文法入門教程」、「PHP演算と演算子の使い方のまとめ」、「php文字列(string)使い方のまとめ」、「php+mysqlデータベース操作入門教程」および「phpよくあるデータベースの操作技巧のまとめ」
本論文で述べたように、皆さんのPHPプログラムの設計に役に立ちますように。
php 5.3から始まり、phpは後期バインディングという機能を増加させ、継承範囲内で静的呼び出しのクラスを参照するために使用される。
この機能は言語内部の観点から北を「後期静的バインディング」と名付けた。後期バインディングとは、「static」という意味です。現在の方法の存在を定義するクラスとしては解析されず、実際の運転時に計算されるもので、「静的バインディング」にもなります。彼は(静的方法の呼び出しに限定されない)ために使用することができる。
self:の制限
self::
または_class_
を使用して、現在のクラスの静的な参照は、現在の方法のクラスを定義することに依存する。例:
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
self::who();
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
B::test(); //A
印刷結果:A
静的結合の使用法
静的バインディングは、最初に呼び出したクラスをキーワードとして導入することによって制限を回避しようとします。簡単に言えば、このキーワードは上述の中でtest()を呼び出した時に引用するクラスはBであり、Aではない。最終的には、新しいキーワードを引用しないで、予約したstaticキーワードを使うことにしました。
例:
<?php
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
static::who(); //
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
B::test();
?>
印刷結果は:B
後期静的バインディングの処理は、従来全く解決されていなかった静的呼び出しを解決し、他方、静的呼び出しがparentを使用する場合:またはself::呼び出し情報を転送します。
<?php
class A {
public static function foo() {
static::who();
}
public static function who() {
echo __CLASS__."
";
}
}
class B extends A {
public static function test() {
A::foo();
parent::foo();
self::foo();
}
public static function who() {
echo __CLASS__."
";
}
}
class C extends B {
public static function who() {
echo __CLASS__."
";
}
}
C::test();
?>
印刷結果:A
C
C
例:
<?php
class a {
static public function test() {
print get_called_class();
}
}
class b extends a {
}
a::test();
b::test();
?>
印刷結果:a.
b
特別声明:
get_called_class()
;クラスの名前を取得する静的な方法で呼び出します。PHPについてもっと興味のある読者は、本駅のテーマを見てもいいです。「php対象プログラム設計入門教程」、「PHP配列(Aray)操作テクニック大全」、「PHP基本文法入門教程」、「PHP演算と演算子の使い方のまとめ」、「php文字列(string)使い方のまとめ」、「php+mysqlデータベース操作入門教程」および「phpよくあるデータベースの操作技巧のまとめ」
本論文で述べたように、皆さんのPHPプログラムの設計に役に立ちますように。