PHP オブジェクト指向プログラミングでは、必ず
class test{ public static function test(){ self::func(); static::func(); } public static function func(){} }
に遭遇しますが、self と static の違いはご存知ですか?
実際、違いは非常に簡単で、いくつかのデモを書くだけで理解できます。
自分用のデモ:
class Car { public static function model(){ self::getModel(); } protected static function getModel(){ echo "This is a car model"; } }
Car::model();
Class Taxi extends Car { protected static function getModel(){ echo "This is a Taxi model"; } }
Taxi::model ();
get 出力
This is a car model This is a car model
から、呼び出されるのは親クラスのメソッドではなく、親クラスで呼び出されるメソッドであることがわかります。クラスメソッドはサブクラスのメソッドにもなります(とても混乱しています...)
PHP5.3バージョンの前には、staticとselfにはまだ少し違いがありました、結局のところ、それはすべてバージョン7のものです。世界。もう理解できなくなります。
上記は、オブジェクト指向プログラミングと静的コンテンツを含む、PHP オブジェクト指向プログラミングにおける self と static の違いを紹介したもので、PHP チュートリアルに興味のある友人に役立つことを願っています。