Bkjia.Com プログラミングドキュメント self は通常、現在のクラスの静的メソッドと定数を指し、self:: にメソッド名と定数名を加えたものを使用して参照されます。 $this は、$this-> とメソッド名およびインスタンス変数を使用して参照される、現在のクラスのインスタンス オブジェクトを指します。パラメータがコールバックである一部のメソッドでは、call_user_func('self', $method) のように、self を直接使用する代わりに、文字列 'self' を使用して現在のクラスを指すことができます。
さらに、self は常に現在のクラスのメソッドと定数を参照します。同じ名前のメソッドの場合、サブクラスは親クラスの静的メソッドを呼び出します。サブクラスのメソッドが親クラスのメソッドをオーバーライドする場合は、parent:: を使用して親クラスのメソッドを参照できます。
以下は引用内容です: interface AppConstants { const FOOBAR = 'Hello, World.'; } class Exampleimplements AppConstants { public function test() { echo self :: FOOBAR; } } $obj = new Example(); $obj->test(); // 「Hello, world.」を出力します class MyClass { const NAME = 'Foo'; protected function myFunc( ) { echo "MyClass::myFunc()n"; } static public function display() { echo self :: NAME; } static public function getInstance() { $instance = new self; return $instance; } } class ChildClass extends MyClass { const NAME = 'Child'; // 親の定義をオーバーライドします public function myFunc() { // ただし、親関数を呼び出します parent :: myFunc ( ); echo "ChildClass::myFunc()n"; } } $class = new ChildClass(); $class->myFunc(); echo('クラス定数: ') ; ChildClass::display(); echo('オブジェクトクラス: '); echo(get_class(ChildClass::getInstance())); ?> |