0

$this定義されていない場合に現在のクラスを表す有効な説明をインターネットで検索しました。

を検索したときにドキュメントでこれを見つけました$this

疑似変数 $this は、メソッドがオブジェクト コンテキスト内から呼び出されたときに使用できます。$this は呼び出し元オブジェクトへの参照です (通常はメソッドが属するオブジェクトですが、メソッドがセカンダリ オブジェクトのコンテキストから静的に呼び出される場合は別のオブジェクトになる可能性があります)。

次の例を見てみましょう。

class Foo {
    public $Database;

    public function __construct() {
        $this->Database = 'Test';
    }
        protected function Test()
    {
         return 'Example';
    }
         public function BarFunction()
    {
           return $this->Test();
    }
}

$Test = new Foo();
echo $Test->Database;
echo "\r\n\r\n";
echo $Test->BarFunction();

出力:

Test

Example

静的関数を使用する場合、self::引き継ぎます$this

私の全体的な質問ですが$this、使用する前に定義する必要なく、現在のクラスの自動プレースホルダー代表が自動的に表示されるのはなぜですか?

なぜself::静的関数でのみ使用するのですか? 使ってみると全体的に綺麗に見えるので

self::ProtectedFunction();

以上:

$This->ProtectedFunction();

4

1 に答える 1

3

self現在のクラスを$this参照し、そのクラスの現在のインスタンスを参照します。

于 2013-04-01T23:01:13.563 に答える