php-$thisの意味は何ですか
一部のスクリプトにOOPを含むPHPスクリプトに$this
が含まれているのを見たことがありますが、その意味がわかりませんでした...
$this-> refresh();
おそらく$this
が何を指しているのか説明してください...?
しかし、 $this _is_a_variable
のような動的変数として使用できないことは知っていますが、なぜ動的変数として使用できないのでしょうか。
答え :
解決策:
$this
は現在のオブジェクトへの参照です。
クラスメソッドでのみ使用できます。
疑似変数$thisは、オブジェクトコンテキスト内からメソッドが呼び出されたときに使用できます。 $thisは、呼び出し元のオブジェクト(通常はメソッドが属するオブジェクトですが、メソッドがセカンダリオブジェクトのコンテキストから静的に呼び出される場合は別のオブジェクト)への参照です。
簡単な実例:
class Classname {{ private $ message="大きな茶色のキツネ...ジャンプしました...."; function setMessage($ givenMessage){ {-コード-1}->メッセージ=$giveMessage; } function getMessage(){ $this->メッセージを返す; //任意の値を出力します //オブジェクトのメッセージ変数はに設定されました } } $ my_object = new Classname(); //これは有効なオブジェクトです echo $ my_object-> getMessage(); //「大きな茶色のキツネ...ジャンプしました...」を出力します $ my_object-> setMessage( "Hello World!"); echo $ my_object-> getMessage(); //「Helloworld」を出力します
$this
は、 static コンテキストでメソッドを呼び出す場合、使用できません:Classname :: showMessage(); //エラーをスローします: //オブジェクトコンテキストにないときに使用される`$this`
答え :
解決策:
OOPを実行している場合は、クラスを使用します。あなたが持つことができる:
class CFoo
{
private $var;
public function setFoo($fooVal)
{
$this->var = $fooVal;
}
}
$ thisは、そのクラスの現在のオブジェクトを参照します。
答え :
解決策:
PHP内でクラスを作成する場合、クラス*自体を参照する必要がある場合があります。 $this
変数は、この目的のために予約されています。
**これは、クラスではなく、作成されたオブジェクトを参照しているため、正しいはずです。これは意味的に正しいです。*
例:
クラスカー
{{
プライベート$make;
パブリック関数setMake($ make)
{{
$this-> make = $ make;
}
パブリック関数setModel($ model)
{{
$this-> model = $ model;
}
パブリック関数whatCar()
{{
「この車は」を返します。 $this->make。 ""。 {-コード-1}->モデル;
}
}
使用するには、次のようになります。
$car = new Car();
$car->setMake('Ford');
$car->setModel('Escort');
echo $car->whatCar();
//This car is a Ford Escort
答え :
解決策:
$ thisは、クラスの現在のオブジェクトを参照します。 $ thisは、特定のクラスのメンバーであるメソッドで使用されます。したがって、これらのメソッド内では、メソッドにはそのクラスの特定の「インスタンス」に関する情報がすでに含まれています。したがって、$ thisは、オブジェクトを取得して別の変数に割り当てるのではなく、現在のオブジェクトを参照するために直接使用できます。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。