ホームページ  >  記事  >  php教程  >  PHP オブジェクト指向 (OOP) プログラミング: "$this" の特別な使用法

PHP オブジェクト指向 (OOP) プログラミング: "$this" の特別な使用法

WBOY
WBOYオリジナル
2016-06-21 08:46:51789ブラウズ

これで、オブジェクト内のメンバーにアクセスする方法がわかりました。これは、オブジェクトの外部からオブジェクト内のメンバーにアクセスする形式です。 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() を使用して呼び出しを完了できます。

興味がありそうな記事

  • 推奨 PHP オブジェクト指向入門チュートリアル
  • 詳細な PHP: オブジェクト指向、パターンと実践 (第 3 版).pdf ダウンロード
  • PHP オブジェクト指向のルール
  • PHP オブジェクトから配列 (オブジェクトから配列) , Json to array (Json to Array) メソッド
  • php は、curl を使用してマルチスレッド クラスを実装します。php、curl マルチスレッド ダウンロード画像
  • php の抽象クラスと抽象メソッドに関する問題の分析
  • MySQL コマンドはテーブル構造を変更します: フィールドの追加、削除、変更、フィールド順序の調整
  • プログラマーとテスター間の古典的な対話。これらは外国のプログラマーによって要約され、普遍的に適用できると言って共有されていますか?



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。