オブジェクト指向 (OO) はソフトウェア開発手法の 1 つです。オブジェクト指向の概念とアプリケーションは、プログラミングやソフトウェア開発を超え、データベース システム、インタラクティブ インターフェイス、アプリケーション構造、アプリケーション プラットフォーム、分散システム、ネットワーク管理構造、CAD テクノロジー、人工知能などの分野に拡大しました。ここでは、PHP におけるクラスとオブジェクトの関係について紹介します。
推奨チュートリアル: PHP ビデオ チュートリアル
##1. クラスとオブジェクトの関係
クラスの実体化結果がオブジェクトであり、オブジェクトを抽象化したものがクラスです。開発プロセスでは、通常、最初にクラスを抽象化(想像)し、次にそのクラスを使用してオブジェクトを作成します(空想の内容を実現します)。プログラムでは、抽象 (ファンタジー) クラスの代わりに (ファンタジー) オブジェクトを直接使用します。#2. オブジェクト指向とプロセス指向
#1. プロセス指向とはこのプロセスは、人が洗濯、料理、すべてを自分で解決するようなものです。
2. オブジェクト指向とはオブジェクト指向とは、人がにはオブジェクトがあり、対象者に洗濯と料理をするように頼みます。
3. クラスを抽象化する方法class 类名{
成员属性:
姓名、性别、年龄、身高、体重
成员方法:
说话、走路、学习、吃饭、开车
}
すべてのクラスは、メンバー属性とメンバー メソッドという 2 つの側面から宣言されます。クラスのすべてのメンバーであるため、属性はメンバー属性とも呼ばれ、メソッドはメンバー メソッドとも呼ばれます
オブジェクト内で変数を直接宣言することをメンバ属性と呼びます。クラス内で複数のメンバ変数を宣言できます。つまり、オブジェクト内に複数のメンバ属性が存在できます。 ##2. メンバー メソッド -->関数
class Person{ var $name; //声明第一个成员属性,用于储存人的名字 var age; //声明第一个成员属性,用于储存人的年龄 var $sex; //声明第一个成员属性,用于储存人的性别 }オブジェクトは、関連するプロパティとメソッドをまとめて整理します。メンバー属性とメンバー メソッドはどちらもオプションであり、メンバー属性のみを指定することも、メンバー メソッドのみを指定することも、メンバーを指定しないこともできます。
4. オブジェクトのインスタンス化
クラスは複数のオブジェクトを宣言でき、オブジェクトがメンバー プロパティやメンバー メソッドにアクセスできるようになります
class Person{ var $name; //声明第一个成员属性,用于储存人的名字 var $age; //声明第一个成员属性,用于储存人的年龄 var $sex; //声明第一个成员属性,用于储存人的性别 function say(){ //声明第一个方法 echo '人在说话'; //定义人说话的功能 } function run(){ //声明第二个方法 echo '人在跑步'; //定义人跑步的功能 } function eat(){ //声明第三个方法 echo '人在吃饭'; //定义人吃饭的功能 } }
5. 特別なオブジェクト参照 "$this"
上記の例では、オブジェクトをインスタンス化してから値を割り当てます。メンバーのプロパティにアクセスし、メンバーのメソッドにアクセスします。 $this は現在のオブジェクトを表すメンバー メソッドでも使用できます。 メンバー メソッドが呼び出される前のオブジェクトは誰ですか? $this は誰を表しますか?
class Person{ var $name; //声明第一个成员属性,用于储存人的名字 var $age; //声明第一个成员属性,用于储存人的年龄 var $sex; //声明第一个成员属性,用于储存人的性别 function say(){ //声明第一个方法 echo '人在说话'; //定义人说话的功能 } function run(){ //声明第二个方法 echo '人在跑步'; //定义人跑步的功能 } function eat(){ //声明第三个方法 echo '人在吃饭'; //定义人吃饭的功能 } } // 实例化对象 $sqyy = new Person(); //成员属性赋值 $sqyy -> name = "伊川"; $sqyy -> sex = "男"; $sqyy -> age = 26; //访问对象中的成员方法 $sqyy->eat();6. 構築方法と破棄方法
## 1. 構築方法# 構築方法は、オブジェクトが作成された後、最初に自動的に作成されるオブジェクトです。呼び出されたメソッドはオブジェクトを初期化し、オブジェクトのインスタンス化に new キーワードが使用されると自動的にトリガーされます。
class Person{ var $name; function info(){ $this ->name = "SQYY"; } }
実行結果
2. 破棄メソッド
オブジェクトは自動的に、その前の最後のオブジェクトになります。 destroy 呼び出しメソッドは、最初に受信変数を作成し、次にそれを破棄します
<?php class Person{ //下面是声明人的成员属性,都是没有初始值的,在创建对象时,使用构造方法赋给初始值 var $name; //定义人的名字 var $sex; //定义人的性别 var $age; //定义人的年龄 function __construct($name="SQYY",$sex="男",$age=1){ $this -> name = $name; //在创建对象时,使用传入的参数$name为成员属性 $this->name赋初值 $this -> sex = $sex; //在创建对象时,使用传入的参数$sex为成员属性 $this->sex赋初值 $this -> age = $age; //在创建对象时,使用传入的参数$sex为成员属性 $this->age赋初值 } //下面声明人的成员方法 function say(){ echo "我的名字:" .$this ->name. " ,性别:" .$this -> sex ." 年龄" .$this ->age. "。<br>"; } } $person1 = new Person(); //创建对象$person1时会自动执行构造方法,默认传参 $person2 = new Person('张三'); //创建对象$person2时会自动执行构造方法,传入第一个参数,其他默认传参 $person3 = new Person('李四','男'); //创建对象$person3时会自动执行构造方法,传入前两个参数,其他默认传参 $person4 = new Person('王五','女','20'); //创建对象$person4时会自动执行构造方法,传入所有参数 $person1 ->say(); $person2 ->say(); $person3 ->say(); $person4 ->say(); ?>
実行結果
変数を参照しない場合、オブジェクトは破棄後に作成されます。
<?php header('Content-type:text/html;charset=utf-8'); // 定义一个汽车的类 class car{ // 成员属性 public $name; public $color; //构造方法 public function __construct($name,$color){ $this->name = $name; $this->color = $color; echo "你创建了".$this->name.'<br>'; } // 析构方法 public function __destruct(){ echo "你销毁了".$this->name.'<br>'; } } // 实例化对象 $hanma = new car('悍马','粉色','H2'); $bmw = new car('宝马','红色','X7'); $benchi = new car('奔驰','黑色','s600'); // unset($bmw); $bmw = '1111'; ?>実行結果
以上がPHPのクラスとオブジェクトの関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。