$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();