長い夜です!
今日は地元チームを率いてウェブサイトを構築します。 PHP 5.2 ではビルドできないことがわかり、Web サイトの PHP コードには 5.3 以降の部分が多く含まれていたため、5.2 で実行できるように変更するように言われました。
着替えて場所を見つけました
self – これはこのクラス、コードセグメント内のこのクラスです。
static – PHP 5.3 は、$this に似た現在のクラスを追加するだけです。これはヒープ メモリから抽出され、現在インスタンス化されているクラスにアクセスするため、static はそのクラスを表します。
外国人による専門的な解説を見てみましょう。
self は、新しい操作が行われるメソッドの同じクラスを参照します。
PHP 5.3 の後期静的バインディングの static は、メソッドを呼び出す階層内のクラスを指します。
次の例では、B は A から両方のメソッドを継承します。 self は A の最初のメソッドの実装で定義されているため A にバインドされますが、 static は呼び出されたクラスにバインドされます ( get_called_class() も参照)。
return new static();
}
}
echo get_class(B::get_self()); // A
echo get_class(B::get_static()); // B
echo get_class(A::get_static()); // A
実際、次のように get_class($this) を使用するのは簡単です
;
}
$b = 新しい B();
var_dump(get_class($b->create1()), get_class($b->create2()));
結果
文字列(1) "B"
文字列(1) "B"
*/