ホームページ >バックエンド開発 >PHPチュートリアル >PHPオブジェクト指向$thisキーワード使い方詳細解説_PHPチュートリアル
この記事では、PHP クラスでよく使用される this キーワードを紹介します。次に、オブジェクト指向 PHP クラスでの $this キーワードの使用法を簡単に分析します。このチュートリアルがすべての人に役立つことを願っています。学生。
オブジェクトの外部のオブジェクト メンバーのプロパティとメソッドへのアクセスは、オブジェクトへの参照を使用して行われることは以前に知っていました。オブジェクト内で、メンバー メソッドが他のメンバー プロパティまたは独自のオブジェクト内のメンバー メソッドにアクセスするときは、特別なオブジェクト参照 "$this->value" を使用してアクセスする必要があります。$this 参照は、そのメンバーがどのオブジェクトに属しているかを表します。 . オブジェクトであり、オブジェクトのメンバー メソッド内でのみ使用できます。
PHP クラスとオブジェクトの変数と属性の名前の競合と不確実性の問題を解決するために、現在のオブジェクトを呼び出すために "$this" キーワードが導入されました。
クラス内の現在のオブジェクトのプロパティとメソッドを呼び出すときは、「$this->」キーワードを使用する必要があります。コンストラクター内の $this は、メソッド do で作成された新しいオブジェクトを参照します。オブジェクトに属しておらず、$this キーワード値も使用されません。 $this キーワードを使用すると、クラス内のオブジェクトのプロパティまたはメソッドを呼び出すことができます。
1. 変数を呼び出す
例:
コードは次のとおりです | コードをコピー |
クラスユーザー{ プライベート $n; 関数 __construct(){ $name="マイク"; echo $this->n=$name; } } $p=新しいユーザー(); ?> |
2.呼び出し方法
例:
コードは次のとおりです | コードをコピー |
クラスカル{ |
次の例を見てみましょう。$this は何をしているのでしょうか?
コードは次のとおりです | コードをコピー | ||||
クラスの人{ //以下は人々のメンバー属性です var $name //その人の名前 var $sex //人の性別 var $age //人の年齢 //属性名 $name、性別 $sex、年齢 $age に値を割り当てるコンストラクター パラメーターを定義します function __construct($name="", $sex="", $age=""){ $this->name=$name $this->セックス=$セックス $this->年齢=$年齢 } //この人の話し方は、彼自身の属性を伝えます 関数say() { echo "私の名前: ".$this->name" 性別: ".$this->性別" 私の年齢: ".$this->age" } //オブジェクトのクローン作成時に自動的に呼び出されるメソッド。クローン作成後に元のオブジェクトの内容を変更したい場合は、__clone()で元のオブジェクトを書き換える必要があります プロパティとメソッド 関数 __clone(){ //$this はコピー p2 を指し、$that は元の p1 を指します。したがって、このメソッドではコピーの属性が変更されます。 $this->name="私は偽の $that->name です"; $this->年齢=30; } } $p1=新しい人("張三", "男性", 20); $p2=$p1 をクローンします。 $p1->say(); $p2->say(); ?> 上記の例の出力: 実行結果 上記のコードで $this が何を行うかを見てみましょう: 1. $this->name などのオブジェクト内のメンバーにアクセスします 2. オブジェクトの他のメソッドにアクセスします。たとえば、say() メソッドの外側の $this->run() メソッドや $this->eat("apple") メソッドにアクセスします。 もう 1 つの注目すべき点は、ローカル変数とメンバー属性は同じ名前を持つことができますが、スコープとアクセス メソッドが異なることです。たとえば、eat() メソッド本体の $name はローカル変数と同等であり、そのスコープは次のとおりです。 Eat メソッド内に限定されており、 PERSON のメンバー属性宣言部分の $name はグローバル変数に相当し、他のメソッドでは $this->name の形式でアクセスできます。 例
|
www.bkjia.com