これで、オブジェクト内のメンバーにアクセスする方法がわかりました。これは、オブジェクトの外部からオブジェクト内のメンバーにアクセスする形式です。 object 内で、オブジェクト内のメソッドがこのオブジェクトのプロパティにアクセスできるようにするか、オブジェクト内のメソッドがこのオブジェクトの他のメソッドを呼び出すようにするにはどうすればよいでしょうか。オブジェクト内のすべてのメンバーは、オブジェクトの内部メンバー間の呼び出しを含め、オブジェクトを使用して呼び出す必要があるため、PHP はこのオブジェクトへの参照 $this を提供します。各オブジェクトにはオブジェクト参照 $this があります。オブジェクトを表し、オブジェクトの内部メンバーの呼び出しを完了します。 this の本来の意味は「this」です。上記の例では、3 つのインスタンス オブジェクト $P1、$P2、$P3 が 1 つ存在します。これら 3 つのオブジェクトのそれぞれで、それぞれオブジェクト $p1、$p2、および $p3 を表します。
上の図から、$this がオブジェクト内のこのオブジェクトを表す参照であることがわかります。オブジェクト内でこのオブジェクトのメンバーを呼び出す場合と、オブジェクトのメンバーを呼び出す場合に同じメソッドが使用されます。オブジェクトの外側にあるオブジェクト。
$this->属性: $this->名前; $this->性別;
$this->メソッド: $this->say(); $this->run();
全員が自分の名前、性別、年齢を記載するように上記の例を変更します。
<?php class Person { //下面是人的成员属性 var $name; //人的名子 var $sex; //人的性别 var $age; //人的年龄 //下面是人的成员方法 function say() { //这个人可以说话的方法 echo "我的名子叫:" . $this->name . " 性别:" . $this->sex . " 我的年龄是:" . $this->age; } function run() { //这个人可以走路的方法 echo "这个人在走路"; } } $p1 = new Person(); //创建实例对象$p1 $p2 = new Person(); //创建实例对象$p2 $p3 = new Person(); //创建实例对象$p3 //下面三行是给$p1对象属性赋值 $p1->name = "张三"; $p1->sex = "男"; $p1->age = 20; //下面访问$p1对象中的说话方法 $p1->say(); //下面三行是给$p2对象属性赋值 $p2->name = "李四"; $p2->sex = "女"; $p2->age = 30; //下面访问$p2对象中的说话方法 $p2->say(); //下面三行是给$p3对象属性赋值 $p3->name = "王五"; $p3->sex = "男"; $p3->age = 40; //下面访问$p3对象中的说话方法 $p3->say(); ?>
出力結果は次のとおりです:
私の名前は: Zhang San 性別: 男性 私の年齢: 20 私の名前: Li Si 性別: 女性 私の年齢: 30 私の名前: Wang Wu 性別: 男性 私の年齢: 40
このメソッドを分析します:
function say() { //这个人可以说话的方法 echo "我的名子叫:" . $this->name . " 性别:" . $this->sex . " 我的年龄是:" . $this->age; }
$p1、$p2、$p3 の 3 つのオブジェクトには、say() メソッドがあり、$this はこれら 3 つのオブジェクトをそれぞれ呼び出し、その属性の値を出力します。オブジェクトのプロパティへのアクセスに関しては、say() メソッドで run() メソッドを呼び出す場合、say() メソッドで $this->run() を使用して呼び出しを完了できます。