1

重複の可能性:
PHP: self vs thisおよび $this よりも self を使用する場合

$thisとはどう違いますかself::

例:

class Object{
   public $property;
   function doSomething(){
        // This
        $something = $this->property;
        // Self
        $something = self::property;
        ...code...
   }
}
4

3 に答える 3

3

$thisオブジェクトのインスタンスを参照しself、クラス自体に戻ります。静的呼び出しを使用selfする場合は、クラスのインスタンス (つまり ) を持つ必要がないため、 を参照します$this

于 2010-12-05T22:27:58.183 に答える
2

$thisコードが表示されるオブジェクトを参照するのselfはクラスです。「通常の」メソッドとプロパティは$this任意のメソッド内から呼び出し、静的メソッドとプロパティは次のように呼び出しますself

class A {
    public static $staticVar = 'abc';
    public $var = 'xyz';
    public function doSomething () {
        echo self::$staticVar;
        echo $this->var;
    }
}

とにかく、「自己」の例は無効です。

于 2010-12-05T22:28:26.807 に答える
1

ここから撮影

リンク: http://www.phpbuilder.com/board/showthread.php?t=10354489 :

$this を使用して、現在のオブジェクトを参照します。現在のクラスを参照するには、self を使用します。つまり、非静的メンバーには $this->member を使用し、静的メンバーには self::$member を使用します。

ジョン・ミリキンの回答はこちら

于 2010-12-05T22:29:31.987 に答える